diff options
author | Nikita Popov <nikita.ppv@gmail.com> | 2019-04-15 10:22:40 +0200 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2019-04-15 10:22:40 +0200 |
commit | e9c0367fdc4653331f398df36a10db1c54d6f3df (patch) | |
tree | 73d3425a069edc7b889e2798ce27ad6b1e754fd9 /ext/reflection/php_reflection.c | |
parent | 1e7f1b90e8118aeece2dc48c5252d6979d2e0a3a (diff) | |
download | php-git-e9c0367fdc4653331f398df36a10db1c54d6f3df.tar.gz |
Fixed bug #77882
Diffstat (limited to 'ext/reflection/php_reflection.c')
-rw-r--r-- | ext/reflection/php_reflection.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/ext/reflection/php_reflection.c b/ext/reflection/php_reflection.c index 80e508c175..0a59d9a74c 100644 --- a/ext/reflection/php_reflection.c +++ b/ext/reflection/php_reflection.c @@ -4785,6 +4785,10 @@ ZEND_METHOD(reflection_class, newInstance) for (i = 0; i < num_args; i++) { zval_ptr_dtor(¶ms[i]); } + + if (EG(exception)) { + zend_object_store_ctor_failed(Z_OBJ_P(return_value)); + } if (ret == FAILURE) { php_error_docref(NULL, E_WARNING, "Invocation of %s's constructor failed", ZSTR_VAL(ce->name)); zval_dtor(return_value); @@ -4890,6 +4894,10 @@ ZEND_METHOD(reflection_class, newInstanceArgs) } efree(params); } + + if (EG(exception)) { + zend_object_store_ctor_failed(Z_OBJ_P(return_value)); + } if (ret == FAILURE) { zval_ptr_dtor(&retval); php_error_docref(NULL, E_WARNING, "Invocation of %s's constructor failed", ZSTR_VAL(ce->name)); |