]> granicus.if.org Git - php/commitdiff
Remove some redundant exception checking/continuing VM instructions
authorBob Weinand <bobwei9@hotmail.com>
Wed, 15 Apr 2015 20:17:12 +0000 (22:17 +0200)
committerBob Weinand <bobwei9@hotmail.com>
Wed, 15 Apr 2015 20:18:05 +0000 (22:18 +0200)
Zend/zend_vm_def.h
Zend/zend_vm_execute.h

index f4bd4988324c0ec5afe53383243b526f894c19d6..0dea57aced3e1d5f4e84b84af03e24f1f5e84097 100644 (file)
@@ -7391,23 +7391,17 @@ ZEND_VM_HANDLER(142, ZEND_YIELD_FROM, CONST|TMP|VAR|CV, ANY)
                        if (Z_ISUNDEF(new_gen->retval)) {
                                if (UNEXPECTED(zend_generator_get_current(new_gen) == generator)) {
                                        zend_error(E_ERROR | E_EXCEPTION, "Impossible to yield from the Generator being currently run");
-
                                        HANDLE_EXCEPTION();
-                                       ZEND_VM_NEXT_OPCODE();
                                } else {
                                        zend_generator_yield_from(generator, new_gen);
                                }
                        } else if (UNEXPECTED(new_gen->execute_data == NULL)) {
                                zend_error(E_ERROR | E_EXCEPTION, "Generator passed to yield from was aborted without proper return and is unable to continue");
-
                                HANDLE_EXCEPTION();
-                               ZEND_VM_NEXT_OPCODE();
                        } else {
                                if (RETURN_VALUE_USED(opline)) {
                                        ZVAL_COPY(EX_VAR(opline->result.var), &new_gen->retval);
                                }
-
-                               CHECK_EXCEPTION();
                                ZEND_VM_NEXT_OPCODE();
                        }
                } else {
index 94ed61d7c7d095887da30e0872fcea2829872803..6d4ee188d9fc92c1c116592b47a868d217b33579 100644 (file)
@@ -4047,23 +4047,17 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_FROM_SPEC_CONST_HANDLER(
                        if (Z_ISUNDEF(new_gen->retval)) {
                                if (UNEXPECTED(zend_generator_get_current(new_gen) == generator)) {
                                        zend_error(E_ERROR | E_EXCEPTION, "Impossible to yield from the Generator being currently run");
-
                                        HANDLE_EXCEPTION();
-                                       ZEND_VM_NEXT_OPCODE();
                                } else {
                                        zend_generator_yield_from(generator, new_gen);
                                }
                        } else if (UNEXPECTED(new_gen->execute_data == NULL)) {
                                zend_error(E_ERROR | E_EXCEPTION, "Generator passed to yield from was aborted without proper return and is unable to continue");
-
                                HANDLE_EXCEPTION();
-                               ZEND_VM_NEXT_OPCODE();
                        } else {
                                if (RETURN_VALUE_USED(opline)) {
                                        ZVAL_COPY(EX_VAR(opline->result.var), &new_gen->retval);
                                }
-
-                               CHECK_EXCEPTION();
                                ZEND_VM_NEXT_OPCODE();
                        }
                } else {
@@ -11687,23 +11681,17 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_FROM_SPEC_TMP_HANDLER(ZE
                        if (Z_ISUNDEF(new_gen->retval)) {
                                if (UNEXPECTED(zend_generator_get_current(new_gen) == generator)) {
                                        zend_error(E_ERROR | E_EXCEPTION, "Impossible to yield from the Generator being currently run");
-
                                        HANDLE_EXCEPTION();
-                                       ZEND_VM_NEXT_OPCODE();
                                } else {
                                        zend_generator_yield_from(generator, new_gen);
                                }
                        } else if (UNEXPECTED(new_gen->execute_data == NULL)) {
                                zend_error(E_ERROR | E_EXCEPTION, "Generator passed to yield from was aborted without proper return and is unable to continue");
-
                                HANDLE_EXCEPTION();
-                               ZEND_VM_NEXT_OPCODE();
                        } else {
                                if (RETURN_VALUE_USED(opline)) {
                                        ZVAL_COPY(EX_VAR(opline->result.var), &new_gen->retval);
                                }
-
-                               CHECK_EXCEPTION();
                                ZEND_VM_NEXT_OPCODE();
                        }
                } else {
@@ -15393,23 +15381,17 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_FROM_SPEC_VAR_HANDLER(ZE
                        if (Z_ISUNDEF(new_gen->retval)) {
                                if (UNEXPECTED(zend_generator_get_current(new_gen) == generator)) {
                                        zend_error(E_ERROR | E_EXCEPTION, "Impossible to yield from the Generator being currently run");
-
                                        HANDLE_EXCEPTION();
-                                       ZEND_VM_NEXT_OPCODE();
                                } else {
                                        zend_generator_yield_from(generator, new_gen);
                                }
                        } else if (UNEXPECTED(new_gen->execute_data == NULL)) {
                                zend_error(E_ERROR | E_EXCEPTION, "Generator passed to yield from was aborted without proper return and is unable to continue");
-
                                HANDLE_EXCEPTION();
-                               ZEND_VM_NEXT_OPCODE();
                        } else {
                                if (RETURN_VALUE_USED(opline)) {
                                        ZVAL_COPY(EX_VAR(opline->result.var), &new_gen->retval);
                                }
-
-                               CHECK_EXCEPTION();
                                ZEND_VM_NEXT_OPCODE();
                        }
                } else {
@@ -28990,23 +28972,17 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_FROM_SPEC_CV_HANDLER(ZEN
                        if (Z_ISUNDEF(new_gen->retval)) {
                                if (UNEXPECTED(zend_generator_get_current(new_gen) == generator)) {
                                        zend_error(E_ERROR | E_EXCEPTION, "Impossible to yield from the Generator being currently run");
-
                                        HANDLE_EXCEPTION();
-                                       ZEND_VM_NEXT_OPCODE();
                                } else {
                                        zend_generator_yield_from(generator, new_gen);
                                }
                        } else if (UNEXPECTED(new_gen->execute_data == NULL)) {
                                zend_error(E_ERROR | E_EXCEPTION, "Generator passed to yield from was aborted without proper return and is unable to continue");
-
                                HANDLE_EXCEPTION();
-                               ZEND_VM_NEXT_OPCODE();
                        } else {
                                if (RETURN_VALUE_USED(opline)) {
                                        ZVAL_COPY(EX_VAR(opline->result.var), &new_gen->retval);
                                }
-
-                               CHECK_EXCEPTION();
                                ZEND_VM_NEXT_OPCODE();
                        }
                } else {