Always checks for exception before push call frame
authorXinchen Hui <laruence@php.net>
Tue, 28 Jul 2015 08:06:06 +0000 (16:06 +0800)
committerXinchen Hui <laruence@php.net>
Tue, 28 Jul 2015 08:06:06 +0000 (16:06 +0800)
Zend/zend_vm_def.h
Zend/zend_vm_execute.h

index 0d0eee16289147a62d42a8a5590cf851db658dd0..f77e495fa2abaf7201d8e4e0e4deb24eac3d585e 100644 (file)
@@ -3209,6 +3209,9 @@ ZEND_VM_C_LABEL(try_function_name):
                                        zend_error(E_DEPRECATED,
                                                "Non-static method %s::%s() should not be called statically",
                                                ZSTR_VAL(fbc->common.scope->name), ZSTR_VAL(fbc->common.function_name));
+                                       if (UNEXPECTED(EG(exception) != NULL)) {
+                                               HANDLE_EXCEPTION();
+                                       }
                                } else {
                                        zend_throw_error(
                                                zend_ce_error,
@@ -3300,6 +3303,9 @@ ZEND_VM_C_LABEL(try_function_name):
                                        zend_error(E_DEPRECATED,
                                                "Non-static method %s::%s() should not be called statically",
                                                ZSTR_VAL(fbc->common.scope->name), ZSTR_VAL(fbc->common.function_name));
+                                       if (UNEXPECTED(EG(exception) != NULL)) {
+                                               HANDLE_EXCEPTION();
+                                       }
                                } else {
                                        zend_throw_error(
                                                zend_ce_error,
@@ -3390,6 +3396,9 @@ ZEND_VM_HANDLER(118, ZEND_INIT_USER_CALL, CONST, CONST|TMPVAR|CV)
                        zend_error(E_DEPRECATED,
                                "Non-static method %s::%s() should not be called statically",
                                ZSTR_VAL(func->common.scope->name), ZSTR_VAL(func->common.function_name));
+                       if (UNEXPECTED(EG(exception) != NULL)) {
+                               HANDLE_EXCEPTION();
+                       }
                }
        } else {
                zend_internal_type_error(EX_USES_STRICT_TYPES(), "%s() expects parameter 1 to be a valid callback, %s", Z_STRVAL_P(EX_CONSTANT(opline->op1)), error);
index 36578da670d45426a3fa150b159f684228ec4eaa..950353c9a2cee8e4870ce358e791c672a05d84c2 100644 (file)
@@ -1978,6 +1978,9 @@ try_function_name:
                                        zend_error(E_DEPRECATED,
                                                "Non-static method %s::%s() should not be called statically",
                                                ZSTR_VAL(fbc->common.scope->name), ZSTR_VAL(fbc->common.function_name));
+                                       if (UNEXPECTED(EG(exception) != NULL)) {
+                                               HANDLE_EXCEPTION();
+                                       }
                                } else {
                                        zend_throw_error(
                                                zend_ce_error,
@@ -2069,6 +2072,9 @@ try_function_name:
                                        zend_error(E_DEPRECATED,
                                                "Non-static method %s::%s() should not be called statically",
                                                ZSTR_VAL(fbc->common.scope->name), ZSTR_VAL(fbc->common.function_name));
+                                       if (UNEXPECTED(EG(exception) != NULL)) {
+                                               HANDLE_EXCEPTION();
+                                       }
                                } else {
                                        zend_throw_error(
                                                zend_ce_error,
@@ -2391,6 +2397,9 @@ try_function_name:
                                        zend_error(E_DEPRECATED,
                                                "Non-static method %s::%s() should not be called statically",
                                                ZSTR_VAL(fbc->common.scope->name), ZSTR_VAL(fbc->common.function_name));
+                                       if (UNEXPECTED(EG(exception) != NULL)) {
+                                               HANDLE_EXCEPTION();
+                                       }
                                } else {
                                        zend_throw_error(
                                                zend_ce_error,
@@ -2482,6 +2491,9 @@ try_function_name:
                                        zend_error(E_DEPRECATED,
                                                "Non-static method %s::%s() should not be called statically",
                                                ZSTR_VAL(fbc->common.scope->name), ZSTR_VAL(fbc->common.function_name));
+                                       if (UNEXPECTED(EG(exception) != NULL)) {
+                                               HANDLE_EXCEPTION();
+                                       }
                                } else {
                                        zend_throw_error(
                                                zend_ce_error,
@@ -2637,6 +2649,9 @@ try_function_name:
                                        zend_error(E_DEPRECATED,
                                                "Non-static method %s::%s() should not be called statically",
                                                ZSTR_VAL(fbc->common.scope->name), ZSTR_VAL(fbc->common.function_name));
+                                       if (UNEXPECTED(EG(exception) != NULL)) {
+                                               HANDLE_EXCEPTION();
+                                       }
                                } else {
                                        zend_throw_error(
                                                zend_ce_error,
@@ -2728,6 +2743,9 @@ try_function_name:
                                        zend_error(E_DEPRECATED,
                                                "Non-static method %s::%s() should not be called statically",
                                                ZSTR_VAL(fbc->common.scope->name), ZSTR_VAL(fbc->common.function_name));
+                                       if (UNEXPECTED(EG(exception) != NULL)) {
+                                               HANDLE_EXCEPTION();
+                                       }
                                } else {
                                        zend_throw_error(
                                                zend_ce_error,
@@ -5725,6 +5743,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_USER_CALL_SPEC_CONST_CONS
                        zend_error(E_DEPRECATED,
                                "Non-static method %s::%s() should not be called statically",
                                ZSTR_VAL(func->common.scope->name), ZSTR_VAL(func->common.function_name));
+                       if (UNEXPECTED(EG(exception) != NULL)) {
+                               HANDLE_EXCEPTION();
+                       }
                }
        } else {
                zend_internal_type_error(EX_USES_STRICT_TYPES(), "%s() expects parameter 1 to be a valid callback, %s", Z_STRVAL_P(EX_CONSTANT(opline->op1)), error);
@@ -9472,6 +9493,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_USER_CALL_SPEC_CONST_CV_H
                        zend_error(E_DEPRECATED,
                                "Non-static method %s::%s() should not be called statically",
                                ZSTR_VAL(func->common.scope->name), ZSTR_VAL(func->common.function_name));
+                       if (UNEXPECTED(EG(exception) != NULL)) {
+                               HANDLE_EXCEPTION();
+                       }
                }
        } else {
                zend_internal_type_error(EX_USES_STRICT_TYPES(), "%s() expects parameter 1 to be a valid callback, %s", Z_STRVAL_P(EX_CONSTANT(opline->op1)), error);
@@ -11279,6 +11303,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_USER_CALL_SPEC_CONST_TMPV
                        zend_error(E_DEPRECATED,
                                "Non-static method %s::%s() should not be called statically",
                                ZSTR_VAL(func->common.scope->name), ZSTR_VAL(func->common.function_name));
+                       if (UNEXPECTED(EG(exception) != NULL)) {
+                               HANDLE_EXCEPTION();
+                       }
                }
        } else {
                zend_internal_type_error(EX_USES_STRICT_TYPES(), "%s() expects parameter 1 to be a valid callback, %s", Z_STRVAL_P(EX_CONSTANT(opline->op1)), error);