diff options
author | Dmitry Stogov <dmitry@zend.com> | 2017-11-16 17:09:32 +0300 |
---|---|---|
committer | Dmitry Stogov <dmitry@zend.com> | 2017-11-16 17:09:32 +0300 |
commit | ccc12b82da5dd10b44ab067b68b762298a9eb4eb (patch) | |
tree | 9b17d9d3f99f518fe44532c55ac255c3e0134a13 /ext/reflection/php_reflection.c | |
parent | ce18738a30b3d7f20b392c9167aa251c009a0c21 (diff) | |
download | php-git-ccc12b82da5dd10b44ab067b68b762298a9eb4eb.tar.gz |
Avoid unnecessary reference-counting on strings.
Diffstat (limited to 'ext/reflection/php_reflection.c')
-rw-r--r-- | ext/reflection/php_reflection.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/ext/reflection/php_reflection.c b/ext/reflection/php_reflection.c index 4291883ce9..749c7e7656 100644 --- a/ext/reflection/php_reflection.c +++ b/ext/reflection/php_reflection.c @@ -547,10 +547,11 @@ static void _const_string(smart_str *str, char *name, zval *value, char *indent) smart_str_append_printf(str, "%s Constant [ %s %s ] { %s }\n", indent, type, name, Z_STRVAL_P(value)); } else { - zend_string *value_str = zval_get_string(value); + zend_string *tmp_value_str; + zend_string *value_str = zval_get_tmp_string(value, &tmp_value_str); smart_str_append_printf(str, "%s Constant [ %s %s ] { %s }\n", indent, type, name, ZSTR_VAL(value_str)); - zend_string_release(value_str); + zend_tmp_string_release(tmp_value_str); } } /* }}} */ @@ -568,12 +569,13 @@ static void _class_const_string(smart_str *str, char *name, zend_class_constant smart_str_append_printf(str, "%sConstant [ %s %s %s ] { Array }\n", indent, visibility, type, name); } else { - zend_string *value_str = zval_get_string(&c->value); + zend_string *tmp_value_str; + zend_string *value_str = zval_get_tmp_string(&c->value, &tmp_value_str); smart_str_append_printf(str, "%sConstant [ %s %s %s ] { %s }\n", indent, visibility, type, name, ZSTR_VAL(value_str)); - zend_string_release(value_str); + zend_tmp_string_release(tmp_value_str); } } /* }}} */ @@ -660,9 +662,10 @@ static void _parameter_string(smart_str *str, zend_function *fptr, struct _zend_ } else if (Z_TYPE(zv) == IS_ARRAY) { smart_str_appends(str, "Array"); } else { - zend_string *zv_str = zval_get_string(&zv); + zend_string *tmp_zv_str; + zend_string *zv_str = zval_get_tmp_string(&zv, &tmp_zv_str); smart_str_append(str, zv_str); - zend_string_release(zv_str); + zend_tmp_string_release(tmp_zv_str); } zval_ptr_dtor(&zv); } |