]> granicus.if.org Git - php/commitdiff
Merge branch 'PHP-7.4'
authorNikita Popov <nikita.ppv@gmail.com>
Wed, 4 Sep 2019 10:46:34 +0000 (12:46 +0200)
committerNikita Popov <nikita.ppv@gmail.com>
Wed, 4 Sep 2019 10:47:21 +0000 (12:47 +0200)
1  2 
Zend/zend_execute.c
Zend/zend_vm_def.h
Zend/zend_vm_execute.h

Simple merge
index 4eb0dc80b20ae4a5fee0abaa5041f6217f51937b,1dec6a0a3fad599a306bef6599ebaece37877014..b58130c6d50d4537be2785b4f48a22f97266d88c
@@@ -4235,8 -4203,25 +4228,9 @@@ ZEND_VM_C_LABEL(fcall_except)
                if (!RETURN_VALUE_USED(opline)) {
                        i_zval_ptr_dtor(ret);
                }
 -
 -      } else { /* ZEND_OVERLOADED_FUNCTION */
 -              zval retval;
 -
 -              ret = RETURN_VALUE_USED(opline) ? EX_VAR(opline->result.var) : &retval;
 -
 -              call->prev_execute_data = execute_data;
 -
 -              if (UNEXPECTED(!zend_do_fcall_overloaded(call, ret))) {
 -                      UNDEF_RESULT();
 -                      HANDLE_EXCEPTION();
 -              }
 -
 -              if (!RETURN_VALUE_USED(opline)) {
 -                      zval_ptr_dtor(ret);
 -              }
        }
  
+ ZEND_VM_C_LABEL(fcall_end):
        if (UNEXPECTED(ZEND_CALL_INFO(call) & ZEND_CALL_RELEASE_THIS)) {
                OBJ_RELEASE(Z_OBJ(call->This));
        }
index f65bba6c67dc18a51bb131ba742e5ce74327948d,3af0f5a0efe1331c435b2684e91975dab99becbc..2585277ab26df2327611ef703ceb5bdb59562b5f
@@@ -1647,8 -1617,25 +1640,9 @@@ fcall_except
                if (!0) {
                        i_zval_ptr_dtor(ret);
                }
 -
 -      } else { /* ZEND_OVERLOADED_FUNCTION */
 -              zval retval;
 -
 -              ret = 0 ? EX_VAR(opline->result.var) : &retval;
 -
 -              call->prev_execute_data = execute_data;
 -
 -              if (UNEXPECTED(!zend_do_fcall_overloaded(call, ret))) {
 -                      UNDEF_RESULT();
 -                      HANDLE_EXCEPTION();
 -              }
 -
 -              if (!0) {
 -                      zval_ptr_dtor(ret);
 -              }
        }
  
+ fcall_end:
        if (UNEXPECTED(ZEND_CALL_INFO(call) & ZEND_CALL_RELEASE_THIS)) {
                OBJ_RELEASE(Z_OBJ(call->This));
        }
@@@ -1746,8 -1731,25 +1743,9 @@@ fcall_except
                if (!1) {
                        i_zval_ptr_dtor(ret);
                }
 -
 -      } else { /* ZEND_OVERLOADED_FUNCTION */
 -              zval retval;
 -
 -              ret = 1 ? EX_VAR(opline->result.var) : &retval;
 -
 -              call->prev_execute_data = execute_data;
 -
 -              if (UNEXPECTED(!zend_do_fcall_overloaded(call, ret))) {
 -                      UNDEF_RESULT();
 -                      HANDLE_EXCEPTION();
 -              }
 -
 -              if (!1) {
 -                      zval_ptr_dtor(ret);
 -              }
        }
  
+ fcall_end:
        if (UNEXPECTED(ZEND_CALL_INFO(call) & ZEND_CALL_RELEASE_THIS)) {
                OBJ_RELEASE(Z_OBJ(call->This));
        }