]> granicus.if.org Git - php/commitdiff
Throw exception will override EX(opline)
authorXinchen Hui <laruence@php.net>
Mon, 20 Apr 2015 03:58:23 +0000 (11:58 +0800)
committerXinchen Hui <laruence@php.net>
Mon, 20 Apr 2015 03:58:23 +0000 (11:58 +0800)
Zend/zend_vm_def.h
Zend/zend_vm_execute.h

index c3022ef0d055d56de91837728a174f1cd9588aac..9198964b1535e557b1d50af4cba27878abbecc50 100644 (file)
@@ -7857,7 +7857,7 @@ ZEND_VM_C_LABEL(call_trampoline_end):
                ZEND_VM_RETURN();
        }
 
-       LOAD_OPLINE();
+       opline = EX(opline);
 
        if (object) {
                OBJ_RELEASE(object);
@@ -7866,8 +7866,8 @@ ZEND_VM_C_LABEL(call_trampoline_end):
 
        if (UNEXPECTED(EG(exception) != NULL)) {
                zend_throw_exception_internal(NULL);
-               if (RETURN_VALUE_USED(OPLINE)) {
-                       zval_ptr_dtor(EX_VAR(OPLINE->result.var));
+               if (RETURN_VALUE_USED(opline)) {
+                       zval_ptr_dtor(EX_VAR(opline->result.var));
                }
                HANDLE_EXCEPTION_LEAVE();
        }
index efa08938921281f95b2ba9b7fa7e5e921715a461..489529e9179b009a059cfedf65f505f7dbf0ec29 100644 (file)
@@ -1893,7 +1893,7 @@ call_trampoline_end:
                ZEND_VM_RETURN();
        }
 
-       LOAD_OPLINE();
+       opline = EX(opline);
 
        if (object) {
                OBJ_RELEASE(object);
@@ -1902,8 +1902,8 @@ call_trampoline_end:
 
        if (UNEXPECTED(EG(exception) != NULL)) {
                zend_throw_exception_internal(NULL);
-               if (RETURN_VALUE_USED(OPLINE)) {
-                       zval_ptr_dtor(EX_VAR(OPLINE->result.var));
+               if (RETURN_VALUE_USED(opline)) {
+                       zval_ptr_dtor(EX_VAR(opline->result.var));
                }
                HANDLE_EXCEPTION_LEAVE();
        }