diff options
author | Dmitry Stogov <dmitry@zend.com> | 2018-03-06 21:20:19 +0300 |
---|---|---|
committer | Dmitry Stogov <dmitry@zend.com> | 2018-03-06 21:20:19 +0300 |
commit | d03e95442ad5c055d4488bb7c53114c03de53d4e (patch) | |
tree | eaa390b79e9605d8107b0562593cc04ec4e7d29b /Zend/zend_exceptions.c | |
parent | 4d75504d4f62c32e9c902a1e0517c7fd2eab5d08 (diff) | |
download | php-git-d03e95442ad5c055d4488bb7c53114c03de53d4e.tar.gz |
Use reference counting instead of duplication
Diffstat (limited to 'Zend/zend_exceptions.c')
-rw-r--r-- | Zend/zend_exceptions.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/Zend/zend_exceptions.c b/Zend/zend_exceptions.c index 64a2a8e8f6..626932826e 100644 --- a/Zend/zend_exceptions.c +++ b/Zend/zend_exceptions.c @@ -334,13 +334,12 @@ ZEND_METHOD(exception, __wakeup) ErrorException constructor */ ZEND_METHOD(error_exception, __construct) { - char *message = NULL, *filename = NULL; + zend_string *message = NULL, *filename = NULL; zend_long code = 0, severity = E_ERROR, lineno; zval tmp, *object, *previous = NULL; int argc = ZEND_NUM_ARGS(); - size_t message_len, filename_len; - if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, argc, "|sllslO!", &message, &message_len, &code, &severity, &filename, &filename_len, &lineno, &previous, zend_ce_throwable) == FAILURE) { + if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, argc, "|SllSlO!", &message, &code, &severity, &filename, &lineno, &previous, zend_ce_throwable) == FAILURE) { zend_class_entry *ce; if (Z_TYPE(EX(This)) == IS_OBJECT) { @@ -357,7 +356,7 @@ ZEND_METHOD(error_exception, __construct) object = getThis(); if (message) { - ZVAL_STRING(&tmp, message); + ZVAL_STR_COPY(&tmp, message); zend_update_property_ex(zend_ce_exception, object, ZSTR_KNOWN(ZEND_STR_MESSAGE), &tmp); zval_ptr_dtor(&tmp); } @@ -375,7 +374,7 @@ ZEND_METHOD(error_exception, __construct) zend_update_property_ex(zend_ce_exception, object, ZSTR_KNOWN(ZEND_STR_SEVERITY), &tmp); if (argc >= 4) { - ZVAL_STRING(&tmp, filename); + ZVAL_STR_COPY(&tmp, filename); zend_update_property_ex(zend_ce_exception, object, ZSTR_KNOWN(ZEND_STR_FILE), &tmp); zval_ptr_dtor(&tmp); if (argc < 5) { |