string_printf(str, "%s - Constants [%d] {\n", indent, count);
if (count > 0) {
zend_string *key;
- zval *value;
+ zend_class_constant *c;
- ZEND_HASH_FOREACH_STR_KEY_VAL(&ce->constants_table, key, value) {
- if (UNEXPECTED(zval_update_constant_ex(value, 1, NULL) == FAILURE)) {
+ ZEND_HASH_FOREACH_STR_KEY_PTR(&ce->constants_table, key, c) {
+ _class_const_string(str, ZSTR_VAL(key), c, ZSTR_VAL(sub_indent.buf));
++ if (UNEXPECTED(EG(exception))) {
+ return;
+ }
- _const_string(str, ZSTR_VAL(key), value, indent);
} ZEND_HASH_FOREACH_END();
}
string_printf(str, "%s }\n", indent);
string_write(str, " = ", sizeof(" = ")-1);
ZVAL_DUP(&zv, RT_CONSTANT(&fptr->op_array, precv->op2));
- zval_update_constant_ex(&zv, fptr->common.scope);
- old_scope = EG(scope);
- EG(scope) = fptr->common.scope;
- if (UNEXPECTED(zval_update_constant_ex(&zv, 1, NULL) == FAILURE)) {
- EG(scope) = old_scope;
++ if (UNEXPECTED(zval_update_constant_ex(&zv, fptr->common.scope) == FAILURE)) {
+ zval_ptr_dtor(&zv);
+ return;
+ }
- EG(scope) = old_scope;
if (Z_TYPE(zv) == IS_TRUE) {
string_write(str, "true", sizeof("true")-1);
} else if (Z_TYPE(zv) == IS_FALSE) {