File tree Expand file tree Collapse file tree 2 files changed +8
-2
lines changed Expand file tree Collapse file tree 2 files changed +8
-2
lines changed Original file line number Diff line number Diff line change @@ -49565,7 +49565,10 @@ ZEND_API int zend_vm_call_opcode_handler(zend_execute_data* ex)
49565
49565
LOAD_OPLINE();
49566
49566
#if defined(ZEND_VM_FP_GLOBAL_REG) && defined(ZEND_VM_IP_GLOBAL_REG)
49567
49567
((opcode_handler_t)OPLINE->handler)(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
49568
- ret = (opline) ? 0 : -1;
49568
+ ret = (opline) ? execute_data != ex : -1;
49569
+ if (ret == 1 && execute_data->prev_execute_data != ex) {
49570
+ ret = 2;;
49571
+ }
49569
49572
#else
49570
49573
ret = ((opcode_handler_t)OPLINE->handler)(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
49571
49574
#endif
Original file line number Diff line number Diff line change @@ -1606,7 +1606,10 @@ function gen_vm($def, $skel) {
1606
1606
out ($ f , "\tLOAD_OPLINE(); \n" );
1607
1607
out ($ f ,"#if defined(ZEND_VM_FP_GLOBAL_REG) && defined(ZEND_VM_IP_GLOBAL_REG) \n" );
1608
1608
out ($ f , "\t((opcode_handler_t)OPLINE->handler)(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); \n" );
1609
- out ($ f , "\tret = (opline) ? 0 : -1; \n" );
1609
+ out ($ f , "\tret = (opline) ? execute_data != ex : -1; \n" );
1610
+ out ($ f , "\tif (ret == 1 && execute_data->prev_execute_data != ex) { \n" );
1611
+ out ($ f , "\t\tret = 2;; \n" );
1612
+ out ($ f , "\t} \n" );
1610
1613
out ($ f , "#else \n" );
1611
1614
out ($ f , "\tret = ((opcode_handler_t)OPLINE->handler)(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); \n" );
1612
1615
out ($ f , "#endif \n" );
You can’t perform that action at this time.
0 commit comments