cvs: php-src(PHP_5_3) /main php.h ZendEngine2 zend_execute_API.c
| From: | Marcus Boerger | Date: | Fri, 08 Aug 2008 13:21:52 +0000 |
| Subject: | cvs: php-src(PHP_5_3) /main php.h ZendEngine2 zend_execute_API.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-52135@lists.php.net to get a copy of this message | ||
helly Fri Aug 8 13:21:52 2008 UTC
Modified files: (Branch: PHP_5_3)
/ZendEngine2 zend_execute_API.c
/php-src/main php.h
Log:
- MFH store error handling mode on stack when executing internal
or overloaded functions and methods. [...]
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_execute_API.c?r1=1.331.2.20.2.24.2.50&r2=1.331.2.20.2.24.2.51&diff_format=u
Index: ZendEngine2/zend_execute_API.c
diff -u ZendEngine2/zend_execute_API.c:1.331.2.20.2.24.2.50
ZendEngine2/zend_execute_API.c:1.331.2.20.2.24.2.51
--- ZendEngine2/zend_execute_API.c:1.331.2.20.2.24.2.50 Fri Aug 1 14:22:03 2008
+++ ZendEngine2/zend_execute_API.c Fri Aug 8 13:21:52 2008
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_execute_API.c,v 1.331.2.20.2.24.2.50 2008/08/01 14:22:03 dmitry Exp $ */
+/* $Id: zend_execute_API.c,v 1.331.2.20.2.24.2.51 2008/08/08 13:21:52 helly Exp $ */
#include <stdio.h>
#include <signal.h>
@@ -890,12 +890,16 @@
EG(opline_ptr) = original_opline_ptr;
} else if (EX(function_state).function->type == ZEND_INTERNAL_FUNCTION) {
int call_via_handler = (EX(function_state).function->common.fn_flags &
ZEND_ACC_CALL_VIA_HANDLER) != 0;
+ zend_error_handling_t error_handling = EG(error_handling);
+ zend_class_entry *exception_class = EG(exception_class);
ALLOC_INIT_ZVAL(*fci->retval_ptr_ptr);
if (EX(function_state).function->common.scope) {
EG(scope) = EX(function_state).function->common.scope;
}
((zend_internal_function *) EX(function_state).function)->handler(fci->param_count,
*fci->retval_ptr_ptr, fci->retval_ptr_ptr, (fci->object_pp?*fci->object_pp:NULL), 1
TSRMLS_CC);
+ EG(error_handling) = error_handling;
+ EG(exception_class) = exception_class;
/* We shouldn't fix bad extensions here,
because it can break proper ones (Bug #34045)
if (!EX(function_state).function->common.return_reference)
@@ -912,12 +916,15 @@
fci_cache->initialized = 0;
}
} else { /* ZEND_OVERLOADED_FUNCTION */
-
ALLOC_INIT_ZVAL(*fci->retval_ptr_ptr);
- /* Not sure what should be done here if it's a static method */
+ /* Not sure what should be done here if it's a static method */
if (fci->object_pp) {
+ zend_error_handling_t error_handling = EG(error_handling);
+ zend_class_entry *exception_class = EG(exception_class);
Z_OBJ_HT_PP(fci->object_pp)->call_method(EX(function_state).function->common.function_name,
fci->param_count, *fci->retval_ptr_ptr, fci->retval_ptr_ptr, *fci->object_pp, 1
TSRMLS_CC);
+ EG(error_handling) = error_handling;
+ EG(exception_class) = exception_class;
} else {
zend_error_noreturn(E_ERROR, "Cannot call overloaded function for non-object");
}
http://cvs.php.net/viewvc.cgi/php-src/main/php.h?r1=1.221.2.4.2.8.2.5&r2=1.221.2.4.2.8.2.6&diff_format=u
Index: php-src/main/php.h
diff -u php-src/main/php.h:1.221.2.4.2.8.2.5 php-src/main/php.h:1.221.2.4.2.8.2.6
--- php-src/main/php.h:1.221.2.4.2.8.2.5 Tue Jun 24 05:59:53 2008
+++ php-src/main/php.h Fri Aug 8 13:21:52 2008
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php.h,v 1.221.2.4.2.8.2.5 2008/06/24 05:59:53 kalle Exp $ */
+/* $Id: php.h,v 1.221.2.4.2.8.2.6 2008/08/08 13:21:52 helly Exp $ */
#ifndef PHP_H
#define PHP_H
@@ -288,7 +288,7 @@
BEGIN_EXTERN_C()
PHPAPI void php_set_error_handling(error_handling_t error_handling, zend_class_entry
*exception_class TSRMLS_DC);
-#define php_std_error_handling() php_set_error_handling(EH_NORMAL, NULL TSRMLS_CC)
+static ZEND_ATTRIBUTE_DEPRECATED void php_std_error_handling() {}
PHPAPI void php_verror(const char *docref, const char *params, int type, const char *format,
va_list args TSRMLS_DC) PHP_ATTRIBUTE_FORMAT(printf, 4, 0);