Skip to content

Commit f333f71

Browse files
committed
Revert "Try to figure out how to free arguments"
This reverts commit 4cc48b35040bf462769f0ad75c521cf1705c2c74.
1 parent aae7075 commit f333f71

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
@@ -7872,73 +7872,6 @@ ZEND_VM_HANDLER(149, ZEND_HANDLE_EXCEPTION, ANY, ANY)
78727872
if (!is_in_silence_live_range(EX(func)->op_array, throw_op_num)
78737873
|| !instanceof_function(zend_ce_exception, EG(exception)->ce)) {
78747874
cleanup_unfinished_calls(execute_data, throw_op_num);
7875-
} else if (UNEXPECTED(EX(call))) {
7876-
zend_execute_data *call = EX(call);
7877-
zend_op *opline = EX(func)->op_array.opcodes + throw_op_num;
7878-
bool do_exit = false;
7879-
unsigned int level = 0;
7880-
7881-
printf("Opcode %d\n", opline->opcode);
7882-
/* Decrement opline */
7883-
opline--;
7884-
7885-
do {
7886-
switch (opline->opcode) {
7887-
case ZEND_DO_FCALL:
7888-
case ZEND_DO_ICALL:
7889-
case ZEND_DO_UCALL:
7890-
case ZEND_DO_FCALL_BY_NAME:
7891-
level++;
7892-
break;
7893-
case ZEND_INIT_FCALL:
7894-
case ZEND_INIT_FCALL_BY_NAME:
7895-
case ZEND_INIT_NS_FCALL_BY_NAME:
7896-
case ZEND_INIT_DYNAMIC_CALL:
7897-
case ZEND_INIT_USER_CALL:
7898-
case ZEND_INIT_METHOD_CALL:
7899-
case ZEND_INIT_STATIC_METHOD_CALL:
7900-
case ZEND_NEW:
7901-
if (level == 0) {
7902-
ZEND_CALL_NUM_ARGS(call) = 0;
7903-
do_exit = true;
7904-
}
7905-
level--;
7906-
break;
7907-
case ZEND_SEND_VAL:
7908-
case ZEND_SEND_VAL_EX:
7909-
case ZEND_SEND_VAR:
7910-
case ZEND_SEND_VAR_EX:
7911-
case ZEND_SEND_FUNC_ARG:
7912-
case ZEND_SEND_REF:
7913-
case ZEND_SEND_VAR_NO_REF:
7914-
case ZEND_SEND_VAR_NO_REF_EX:
7915-
case ZEND_SEND_USER:
7916-
if (level == 0) {
7917-
/* For named args, the number of arguments is up to date. */
7918-
if (opline->op2_type != IS_CONST) {
7919-
ZEND_CALL_NUM_ARGS(call) = opline->op2.num;
7920-
}
7921-
do_exit = true;
7922-
}
7923-
break;
7924-
case ZEND_SEND_ARRAY:
7925-
case ZEND_SEND_UNPACK:
7926-
case ZEND_CHECK_UNDEF_ARGS:
7927-
if (level == 0) {
7928-
do_exit = true;
7929-
}
7930-
break;
7931-
}
7932-
if (!do_exit) {
7933-
opline--;
7934-
}
7935-
} while (!do_exit);
7936-
7937-
//zend_vm_stack_free_args(call);
7938-
//zend_vm_stack_free_extra_args(call);
7939-
//EX(call) = call->prev_execute_data;
7940-
//zend_vm_stack_free_call_frame(call);
7941-
//call = EX(call);
79427875
}
79437876

79447877
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
@@ -3147,73 +3147,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_HANDLE_EXCEPTION_SPEC_HANDLER(
31473147
if (!is_in_silence_live_range(EX(func)->op_array, throw_op_num)
31483148
|| !instanceof_function(zend_ce_exception, EG(exception)->ce)) {
31493149
cleanup_unfinished_calls(execute_data, throw_op_num);
3150-
} else if (UNEXPECTED(EX(call))) {
3151-
zend_execute_data *call = EX(call);
3152-
zend_op *opline = EX(func)->op_array.opcodes + throw_op_num;
3153-
bool do_exit = false;
3154-
unsigned int level = 0;
3155-
3156-
printf("Opcode %d\n", opline->opcode);
3157-
/* Decrement opline */
3158-
opline--;
3159-
3160-
do {
3161-
switch (opline->opcode) {
3162-
case ZEND_DO_FCALL:
3163-
case ZEND_DO_ICALL:
3164-
case ZEND_DO_UCALL:
3165-
case ZEND_DO_FCALL_BY_NAME:
3166-
level++;
3167-
break;
3168-
case ZEND_INIT_FCALL:
3169-
case ZEND_INIT_FCALL_BY_NAME:
3170-
case ZEND_INIT_NS_FCALL_BY_NAME:
3171-
case ZEND_INIT_DYNAMIC_CALL:
3172-
case ZEND_INIT_USER_CALL:
3173-
case ZEND_INIT_METHOD_CALL:
3174-
case ZEND_INIT_STATIC_METHOD_CALL:
3175-
case ZEND_NEW:
3176-
if (level == 0) {
3177-
ZEND_CALL_NUM_ARGS(call) = 0;
3178-
do_exit = true;
3179-
}
3180-
level--;
3181-
break;
3182-
case ZEND_SEND_VAL:
3183-
case ZEND_SEND_VAL_EX:
3184-
case ZEND_SEND_VAR:
3185-
case ZEND_SEND_VAR_EX:
3186-
case ZEND_SEND_FUNC_ARG:
3187-
case ZEND_SEND_REF:
3188-
case ZEND_SEND_VAR_NO_REF:
3189-
case ZEND_SEND_VAR_NO_REF_EX:
3190-
case ZEND_SEND_USER:
3191-
if (level == 0) {
3192-
/* For named args, the number of arguments is up to date. */
3193-
if (opline->op2_type != IS_CONST) {
3194-
ZEND_CALL_NUM_ARGS(call) = opline->op2.num;
3195-
}
3196-
do_exit = true;
3197-
}
3198-
break;
3199-
case ZEND_SEND_ARRAY:
3200-
case ZEND_SEND_UNPACK:
3201-
case ZEND_CHECK_UNDEF_ARGS:
3202-
if (level == 0) {
3203-
do_exit = true;
3204-
}
3205-
break;
3206-
}
3207-
if (!do_exit) {
3208-
opline--;
3209-
}
3210-
} while (!do_exit);
3211-
3212-
//zend_vm_stack_free_args(call);
3213-
//zend_vm_stack_free_extra_args(call);
3214-
//EX(call) = call->prev_execute_data;
3215-
//zend_vm_stack_free_call_frame(call);
3216-
//call = EX(call);
32173150
}
32183151

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

0 commit comments

Comments
 (0)