diff options
| -rw-r--r-- | Zend/zend.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/Zend/zend.c b/Zend/zend.c index fbb5c07de5..f7713102e8 100644 --- a/Zend/zend.c +++ b/Zend/zend.c @@ -1176,8 +1176,13 @@ ZEND_API void zend_error(int type, const char *format, ...) /* {{{ */ if (!EG(active_symbol_table)) { ZVAL_NULL(¶ms[4]); } else { -//??? ZVAL_ARR(¶ms[4], EG(active_symbol_table)); +//??? +#if 1 + ZVAL_NULL(¶ms[4]); +#else + ZVAL_ARR(¶ms[4], EG(active_symbol_table)); zval_copy_ctor(¶ms[4]); +#endif } ZVAL_COPY_VALUE(&orig_user_error_handler, &EG(user_error_handler)); @@ -1229,10 +1234,15 @@ ZEND_API void zend_error(int type, const char *format, ...) /* {{{ */ CG(in_compilation) = 1; } + zval_ptr_dtor(¶ms[4]); + zval_ptr_dtor(¶ms[3]); + zval_ptr_dtor(¶ms[2]); + zval_ptr_dtor(¶ms[1]); + zval_ptr_dtor(¶ms[0]); + if (Z_TYPE(EG(user_error_handler)) == IS_UNDEF) { ZVAL_COPY_VALUE(&EG(user_error_handler), &orig_user_error_handler); - } - else { + } else { zval_ptr_dtor(&orig_user_error_handler); } break; |
