Skip to content

Commit bca9de5

Browse files
Keep the enum(Foo::Bar) headers, remove object handle
1 parent 3b14e2c commit bca9de5

File tree

4 files changed

+14
-9
lines changed

4 files changed

+14
-9
lines changed

Zend/tests/enum/debugInfo/backed_enum_value.phpt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ enum Foo: string {
1414
var_dump(Foo::Bar);
1515

1616
?>
17-
--EXPECTF--
18-
object(Foo)#%d (1) {
17+
--EXPECT--
18+
enum(Foo::Bar) (1) {
1919
[0]=>
2020
string(14) "Foo::Bar = Baz"
2121
}

Zend/tests/enum/debugInfo/magic_method.phpt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ enum Foo {
1414
var_dump(Foo::Bar);
1515

1616
?>
17-
--EXPECTF--
18-
object(Foo)#%d (1) {
17+
--EXPECT--
18+
enum(Foo::Bar) (1) {
1919
[0]=>
2020
string(29) "Bar is a case of the Foo enum"
2121
}

Zend/tests/enum/debugInfo/visibility_validation.phpt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,5 @@ var_dump(Foo::Bar);
1616
?>
1717
--EXPECTF--
1818
Warning: The magic method Foo::__debugInfo() must have public visibility in %s on line %d
19-
object(Foo)#%d (0) {
19+
enum(Foo::Bar) (0) {
2020
}

ext/standard/var.c

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -182,11 +182,16 @@ PHPAPI void php_var_dump(zval *struc, int level) /* {{{ */
182182
ZEND_GUARD_OR_GC_PROTECT_RECURSION(guard, DEBUG, zobj);
183183

184184
myht = zend_get_properties_for(struc, ZEND_PROP_PURPOSE_DEBUG);
185-
class_name = Z_OBJ_HANDLER_P(struc, get_class_name)(Z_OBJ_P(struc));
186-
const char *prefix = php_var_dump_object_prefix(Z_OBJ_P(struc));
185+
if (ce->ce_flags & ZEND_ACC_ENUM) {
186+
zval *case_name_zval = zend_enum_fetch_case_name(Z_OBJ_P(struc));
187+
php_printf("%senum(%s::%s) (%d) {\n", COMMON, ZSTR_VAL(ce->name), Z_STRVAL_P(case_name_zval), myht ? zend_array_count(myht) : 0);
188+
} else {
189+
class_name = Z_OBJ_HANDLER_P(struc, get_class_name)(Z_OBJ_P(struc));
190+
const char *prefix = php_var_dump_object_prefix(Z_OBJ_P(struc));
187191

188-
php_printf("%s%sobject(%s)#%d (%d) {\n", COMMON, prefix, ZSTR_VAL(class_name), Z_OBJ_HANDLE_P(struc), myht ? zend_array_count(myht) : 0);
189-
zend_string_release_ex(class_name, 0);
192+
php_printf("%s%sobject(%s)#%d (%d) {\n", COMMON, prefix, ZSTR_VAL(class_name), Z_OBJ_HANDLE_P(struc), myht ? zend_array_count(myht) : 0);
193+
zend_string_release_ex(class_name, 0);
194+
}
190195

191196
if (myht) {
192197
zend_ulong num;

0 commit comments

Comments
 (0)