diff options
-rw-r--r-- | Zend/tests/type_declarations/typed_properties_021.phpt | 13 | ||||
-rw-r--r-- | Zend/zend_API.c | 1 |
2 files changed, 8 insertions, 6 deletions
diff --git a/Zend/tests/type_declarations/typed_properties_021.phpt b/Zend/tests/type_declarations/typed_properties_021.phpt index a9f82528d9..93a07771fb 100644 --- a/Zend/tests/type_declarations/typed_properties_021.phpt +++ b/Zend/tests/type_declarations/typed_properties_021.phpt @@ -6,10 +6,11 @@ class Foo { public int $bar = BAR::BAZ; } -$foo = new Foo(); +try { + $foo = new Foo(); +} catch (Error $e) { + echo $e->getMessage(), "\n"; +} ?> ---EXPECTF-- -Fatal error: Uncaught Error: Class 'BAR' not found in %s:%d -Stack trace: -#0 {main} - thrown in %s on line %d +--EXPECT-- +Class 'BAR' not found diff --git a/Zend/zend_API.c b/Zend/zend_API.c index 3fef3733f7..8fab994297 100644 --- a/Zend/zend_API.c +++ b/Zend/zend_API.c @@ -1228,6 +1228,7 @@ ZEND_API int zend_update_class_constants(zend_class_entry *class_type) /* {{{ */ ZVAL_COPY(&tmp, val); if (UNEXPECTED(zval_update_constant_ex(&tmp, ce) != SUCCESS)) { + zval_ptr_dtor(&tmp); return FAILURE; } /* property initializers must always be evaluated with strict types */; |