summaryrefslogtreecommitdiff
path: root/ext/reflection/php_reflection.c
diff options
context:
space:
mode:
authorNikita Popov <nikic@php.net>2016-07-13 21:48:22 +0200
committerNikita Popov <nikic@php.net>2016-07-13 21:52:40 +0200
commit981b94e0cf969749deb87c9b67ab6540ace4ad82 (patch)
tree19e4001634baec0dbf50bd85c2997bb4fb8f8bbe /ext/reflection/php_reflection.c
parente6f04d4c8e9adf24ecb9c8d5d2aaf33d311d64be (diff)
parent57c998361957fec8a58b4ea6a9bc49887395db93 (diff)
downloadphp-git-981b94e0cf969749deb87c9b67ab6540ace4ad82.tar.gz
Merge branch 'PHP-7.0'
Diffstat (limited to 'ext/reflection/php_reflection.c')
-rw-r--r--ext/reflection/php_reflection.c30
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);
+ }
}
/* }}} */