diff options
author | Nikita Popov <nikic@php.net> | 2016-07-13 21:48:22 +0200 |
---|---|---|
committer | Nikita Popov <nikic@php.net> | 2016-07-13 21:52:40 +0200 |
commit | 981b94e0cf969749deb87c9b67ab6540ace4ad82 (patch) | |
tree | 19e4001634baec0dbf50bd85c2997bb4fb8f8bbe /ext/reflection/php_reflection.c | |
parent | e6f04d4c8e9adf24ecb9c8d5d2aaf33d311d64be (diff) | |
parent | 57c998361957fec8a58b4ea6a9bc49887395db93 (diff) | |
download | php-git-981b94e0cf969749deb87c9b67ab6540ace4ad82.tar.gz |
Merge branch 'PHP-7.0'
Diffstat (limited to 'ext/reflection/php_reflection.c')
-rw-r--r-- | ext/reflection/php_reflection.c | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/ext/reflection/php_reflection.c b/ext/reflection/php_reflection.c index ebc34e902d..0c9a8dbed1 100644 --- a/ext/reflection/php_reflection.c +++ b/ext/reflection/php_reflection.c @@ -457,7 +457,6 @@ static void _class_string(string *str, zend_class_entry *ce, zval *obj, char *in zend_class_constant *c; ZEND_HASH_FOREACH_STR_KEY_PTR(&ce->constants_table, key, c) { - zval_update_constant_ex(&c->value, c->ce); _class_const_string(str, ZSTR_VAL(key), c, ZSTR_VAL(sub_indent.buf)); } ZEND_HASH_FOREACH_END(); } @@ -622,12 +621,16 @@ static void _class_string(string *str, zend_class_entry *ce, zval *obj, char *in static void _const_string(string *str, char *name, zval *value, char *indent) { char *type = zend_zval_type_name(value); - zend_string *value_str = zval_get_string(value); - string_printf(str, "%s Constant [ %s %s ] { %s }\n", - indent, type, name, ZSTR_VAL(value_str)); - - zend_string_release(value_str); + if (Z_TYPE_P(value) == IS_ARRAY) { + string_printf(str, "%s Constant [ %s %s ] { Array }\n", + indent, type, name); + } else { + zend_string *value_str = zval_get_string(value); + string_printf(str, "%s Constant [ %s %s ] { %s }\n", + indent, type, name, ZSTR_VAL(value_str)); + zend_string_release(value_str); + } } /* }}} */ @@ -635,17 +638,22 @@ static void _const_string(string *str, char *name, zval *value, char *indent) static void _class_const_string(string *str, char *name, zend_class_constant *c, char *indent) { char *visibility = zend_visibility_string(Z_ACCESS_FLAGS(c->value)); - zend_string *value_str; char *type; zval_update_constant_ex(&c->value, c->ce); - value_str = zval_get_string(&c->value); type = zend_zval_type_name(&c->value); - string_printf(str, "%sConstant [ %s %s %s ] { %s }\n", - indent, visibility, type, name, ZSTR_VAL(value_str)); + if (Z_TYPE(c->value) == IS_ARRAY) { + string_printf(str, "%sConstant [ %s %s %s ] { Array }\n", + indent, visibility, type, name); + } else { + zend_string *value_str = zval_get_string(&c->value); + + string_printf(str, "%sConstant [ %s %s %s ] { %s }\n", + indent, visibility, type, name, ZSTR_VAL(value_str)); - zend_string_release(value_str); + zend_string_release(value_str); + } } /* }}} */ |