]> granicus.if.org Git - php/commitdiff
Optimized detection of "__call" and "__callstatic" methods.
authorDmitry Stogov <dmitry@php.net>
Tue, 25 Mar 2008 13:04:22 +0000 (13:04 +0000)
committerDmitry Stogov <dmitry@php.net>
Tue, 25 Mar 2008 13:04:22 +0000 (13:04 +0000)
Zend/zend_API.c

index a2a66cb6bf4aa1e78f54da571968e81502783f5e..d20439f70a58b9c2bd62aa68492b25d099641548 100644 (file)
@@ -3094,9 +3094,9 @@ ZEND_API int zend_fcall_info_init(zval *callable, uint check_flags, zend_fcall_i
        fci->no_separation = 1;
        fci->symbol_table = NULL;
 
-       if (ZEND_U_CASE_EQUAL(ZEND_STR_TYPE, func->common.function_name, USTR_LEN(func->common.function_name), ZEND_CALL_FUNC_NAME, sizeof(ZEND_CALL_FUNC_NAME)-1) ||
-               ZEND_U_CASE_EQUAL(ZEND_STR_TYPE, func->common.function_name, USTR_LEN(func->common.function_name), ZEND_CALLSTATIC_FUNC_NAME, sizeof(ZEND_CALLSTATIC_FUNC_NAME)-1)
-       ) {
+       if (ce &&
+               (ZEND_U_CASE_EQUAL(ZEND_STR_TYPE, func->common.function_name, USTR_LEN(func->common.function_name), ZEND_CALL_FUNC_NAME, sizeof(ZEND_CALL_FUNC_NAME)-1) ||
+                ZEND_U_CASE_EQUAL(ZEND_STR_TYPE, func->common.function_name, USTR_LEN(func->common.function_name), ZEND_CALLSTATIC_FUNC_NAME, sizeof(ZEND_CALLSTATIC_FUNC_NAME)-1))) {
                fcc->initialized = 0;
                fcc->function_handler = NULL;
                fcc->calling_scope = NULL;