Skip to content

Commit 73e20ff

Browse files
committed
Revert "Try to figure out how to free arguments"
This reverts commit 4cc48b35040bf462769f0ad75c521cf1705c2c74.
1 parent 2c10b60 commit 73e20ff

File tree

2 files changed

+0
-134
lines changed

2 files changed

+0
-134
lines changed

Zend/zend_vm_def.h

Lines changed: 0 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -7887,73 +7887,6 @@ ZEND_VM_HANDLER(149, ZEND_HANDLE_EXCEPTION, ANY, ANY)
78877887
if (!is_in_silence_live_range(EX(func)->op_array, throw_op_num)
78887888
|| !instanceof_function(zend_ce_exception, EG(exception)->ce)) {
78897889
cleanup_unfinished_calls(execute_data, throw_op_num);
7890-
} else if (UNEXPECTED(EX(call))) {
7891-
zend_execute_data *call = EX(call);
7892-
zend_op *opline = EX(func)->op_array.opcodes + throw_op_num;
7893-
bool do_exit = false;
7894-
unsigned int level = 0;
7895-
7896-
printf("Opcode %d\n", opline->opcode);
7897-
/* Decrement opline */
7898-
opline--;
7899-
7900-
do {
7901-
switch (opline->opcode) {
7902-
case ZEND_DO_FCALL:
7903-
case ZEND_DO_ICALL:
7904-
case ZEND_DO_UCALL:
7905-
case ZEND_DO_FCALL_BY_NAME:
7906-
level++;
7907-
break;
7908-
case ZEND_INIT_FCALL:
7909-
case ZEND_INIT_FCALL_BY_NAME:
7910-
case ZEND_INIT_NS_FCALL_BY_NAME:
7911-
case ZEND_INIT_DYNAMIC_CALL:
7912-
case ZEND_INIT_USER_CALL:
7913-
case ZEND_INIT_METHOD_CALL:
7914-
case ZEND_INIT_STATIC_METHOD_CALL:
7915-
case ZEND_NEW:
7916-
if (level == 0) {
7917-
ZEND_CALL_NUM_ARGS(call) = 0;
7918-
do_exit = true;
7919-
}
7920-
level--;
7921-
break;
7922-
case ZEND_SEND_VAL:
7923-
case ZEND_SEND_VAL_EX:
7924-
case ZEND_SEND_VAR:
7925-
case ZEND_SEND_VAR_EX:
7926-
case ZEND_SEND_FUNC_ARG:
7927-
case ZEND_SEND_REF:
7928-
case ZEND_SEND_VAR_NO_REF:
7929-
case ZEND_SEND_VAR_NO_REF_EX:
7930-
case ZEND_SEND_USER:
7931-
if (level == 0) {
7932-
/* For named args, the number of arguments is up to date. */
7933-
if (opline->op2_type != IS_CONST) {
7934-
ZEND_CALL_NUM_ARGS(call) = opline->op2.num;
7935-
}
7936-
do_exit = true;
7937-
}
7938-
break;
7939-
case ZEND_SEND_ARRAY:
7940-
case ZEND_SEND_UNPACK:
7941-
case ZEND_CHECK_UNDEF_ARGS:
7942-
if (level == 0) {
7943-
do_exit = true;
7944-
}
7945-
break;
7946-
}
7947-
if (!do_exit) {
7948-
opline--;
7949-
}
7950-
} while (!do_exit);
7951-
7952-
//zend_vm_stack_free_args(call);
7953-
//zend_vm_stack_free_extra_args(call);
7954-
//EX(call) = call->prev_execute_data;
7955-
//zend_vm_stack_free_call_frame(call);
7956-
//call = EX(call);
79577890
}
79587891

79597892
if (throw_op->result_type & (IS_VAR | IS_TMP_VAR)) {

Zend/zend_vm_execute.h

Lines changed: 0 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -3155,73 +3155,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_HANDLE_EXCEPTION_SPEC_HANDLER(
31553155
if (!is_in_silence_live_range(EX(func)->op_array, throw_op_num)
31563156
|| !instanceof_function(zend_ce_exception, EG(exception)->ce)) {
31573157
cleanup_unfinished_calls(execute_data, throw_op_num);
3158-
} else if (UNEXPECTED(EX(call))) {
3159-
zend_execute_data *call = EX(call);
3160-
zend_op *opline = EX(func)->op_array.opcodes + throw_op_num;
3161-
bool do_exit = false;
3162-
unsigned int level = 0;
3163-
3164-
printf("Opcode %d\n", opline->opcode);
3165-
/* Decrement opline */
3166-
opline--;
3167-
3168-
do {
3169-
switch (opline->opcode) {
3170-
case ZEND_DO_FCALL:
3171-
case ZEND_DO_ICALL:
3172-
case ZEND_DO_UCALL:
3173-
case ZEND_DO_FCALL_BY_NAME:
3174-
level++;
3175-
break;
3176-
case ZEND_INIT_FCALL:
3177-
case ZEND_INIT_FCALL_BY_NAME:
3178-
case ZEND_INIT_NS_FCALL_BY_NAME:
3179-
case ZEND_INIT_DYNAMIC_CALL:
3180-
case ZEND_INIT_USER_CALL:
3181-
case ZEND_INIT_METHOD_CALL:
3182-
case ZEND_INIT_STATIC_METHOD_CALL:
3183-
case ZEND_NEW:
3184-
if (level == 0) {
3185-
ZEND_CALL_NUM_ARGS(call) = 0;
3186-
do_exit = true;
3187-
}
3188-
level--;
3189-
break;
3190-
case ZEND_SEND_VAL:
3191-
case ZEND_SEND_VAL_EX:
3192-
case ZEND_SEND_VAR:
3193-
case ZEND_SEND_VAR_EX:
3194-
case ZEND_SEND_FUNC_ARG:
3195-
case ZEND_SEND_REF:
3196-
case ZEND_SEND_VAR_NO_REF:
3197-
case ZEND_SEND_VAR_NO_REF_EX:
3198-
case ZEND_SEND_USER:
3199-
if (level == 0) {
3200-
/* For named args, the number of arguments is up to date. */
3201-
if (opline->op2_type != IS_CONST) {
3202-
ZEND_CALL_NUM_ARGS(call) = opline->op2.num;
3203-
}
3204-
do_exit = true;
3205-
}
3206-
break;
3207-
case ZEND_SEND_ARRAY:
3208-
case ZEND_SEND_UNPACK:
3209-
case ZEND_CHECK_UNDEF_ARGS:
3210-
if (level == 0) {
3211-
do_exit = true;
3212-
}
3213-
break;
3214-
}
3215-
if (!do_exit) {
3216-
opline--;
3217-
}
3218-
} while (!do_exit);
3219-
3220-
//zend_vm_stack_free_args(call);
3221-
//zend_vm_stack_free_extra_args(call);
3222-
//EX(call) = call->prev_execute_data;
3223-
//zend_vm_stack_free_call_frame(call);
3224-
//call = EX(call);
32253158
}
32263159

32273160
if (throw_op->result_type & (IS_VAR | IS_TMP_VAR)) {

0 commit comments

Comments
 (0)