From 75f876fca7587218fdbad9bd10bbe52825591ccc Mon Sep 17 00:00:00 2001 From: jvoisin Date: Wed, 6 Dec 2017 13:28:57 +0100 Subject: Vastly simplify the dumping of zval in `.dump` --- src/sp_utils.c | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) (limited to 'src/sp_utils.c') diff --git a/src/sp_utils.c b/src/sp_utils.c index 18f82fe..1ed770b 100644 --- a/src/sp_utils.c +++ b/src/sp_utils.c @@ -126,7 +126,7 @@ int sp_log_request(const char* folder, const char* text_repr) { return -1; } - fprintf(file, "RULE: %s\n", text_repr); + fprintf(file, "RULE: sp.disable_function%s\n", text_repr); fprintf(file, "FILE: %s:%d\n", current_filename, current_line); for (size_t i = 0; i < (sizeof(zones) / sizeof(zones[0])) - 1; i++) { @@ -137,20 +137,15 @@ int sp_log_request(const char* folder, const char* text_repr) { continue; } - HashTable* ht = Z_ARRVAL(PG(http_globals)[zones[i].key]); + const HashTable* const ht = Z_ARRVAL(PG(http_globals)[zones[i].key]); fprintf(file, "%s:", zones[i].str); ZEND_HASH_FOREACH_STR_KEY_VAL(ht, variable_key, variable_value) { - const char* key = ZSTR_VAL(variable_key); - - if (Z_TYPE_INFO_P(variable_value) == IS_LONG) { - fprintf(file, "%s=%" PRId64 "\n", key, Z_LVAL_P(variable_value)); - } else if (Z_TYPE_INFO_P(variable_value) == IS_DOUBLE) { - fprintf(file, "%s=%lf\n", key, Z_DVAL_P(variable_value)); - } else if (Z_TYPE_INFO_P(variable_value) == IS_ARRAY) { - fprintf(file, "%s=array", key); - } else { - fprintf(file, "%s=%s\n", key, Z_STRVAL_P(variable_value)); - } + smart_str a = {0}; + + php_var_export_ex(variable_value, 1, &a); + ZSTR_VAL(a.s)[ZSTR_LEN(a.s)] = '\0'; + fprintf(file, "%s=%s ", ZSTR_VAL(variable_key), ZSTR_VAL(a.s)); + zend_string_release(a.s); } ZEND_HASH_FOREACH_END(); fputs("\n", file); -- cgit v1.3