diff options
| -rw-r--r-- | Zend/zend_exceptions.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/Zend/zend_exceptions.c b/Zend/zend_exceptions.c index aff602c6e8..f157abb155 100644 --- a/Zend/zend_exceptions.c +++ b/Zend/zend_exceptions.c @@ -242,21 +242,21 @@ ZEND_METHOD(exception, __construct) zend_class_entry *base_ce; int argc = ZEND_NUM_ARGS(); + object = getThis(); + base_ce = zend_get_exception_base(object); + if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, argc, "|SlO!", &message, &code, &previous, zend_ce_throwable) == FAILURE) { zend_class_entry *ce; if (execute_data->called_scope) { ce = execute_data->called_scope; } else { - ce = default_exception_ce; + ce = base_ce; } zend_error(E_EXCEPTION | E_ERROR, "Wrong parameters for %s([string $message [, long $code [, Throwable $previous = NULL]]])", ce->name->val); return; } - object = getThis(); - base_ce = zend_get_exception_base(object); - if (message) { zend_update_property_str(base_ce, object, "message", sizeof("message")-1, message); } |
