@@ -7981,73 +7981,6 @@ ZEND_VM_HANDLER(149, ZEND_HANDLE_EXCEPTION, ANY, ANY)
79817981 if (!is_in_silence_live_range (EX (func )-> op_array , throw_op_num )
79827982 || !instanceof_function (zend_ce_exception , EG (exception )-> ce )) {
79837983 cleanup_unfinished_calls (execute_data , throw_op_num );
7984- } else if (UNEXPECTED (EX (call ))) {
7985- zend_execute_data * call = EX (call );
7986- zend_op * opline = EX (func )-> op_array .opcodes + throw_op_num ;
7987- bool do_exit = false;
7988- unsigned int level = 0 ;
7989-
7990- printf ("Opcode %d\n" , opline -> opcode );
7991- /* Decrement opline */
7992- opline -- ;
7993-
7994- do {
7995- switch (opline -> opcode ) {
7996- case ZEND_DO_FCALL :
7997- case ZEND_DO_ICALL :
7998- case ZEND_DO_UCALL :
7999- case ZEND_DO_FCALL_BY_NAME :
8000- level ++ ;
8001- break ;
8002- case ZEND_INIT_FCALL :
8003- case ZEND_INIT_FCALL_BY_NAME :
8004- case ZEND_INIT_NS_FCALL_BY_NAME :
8005- case ZEND_INIT_DYNAMIC_CALL :
8006- case ZEND_INIT_USER_CALL :
8007- case ZEND_INIT_METHOD_CALL :
8008- case ZEND_INIT_STATIC_METHOD_CALL :
8009- case ZEND_NEW :
8010- if (level == 0 ) {
8011- ZEND_CALL_NUM_ARGS (call ) = 0 ;
8012- do_exit = true;
8013- }
8014- level -- ;
8015- break ;
8016- case ZEND_SEND_VAL :
8017- case ZEND_SEND_VAL_EX :
8018- case ZEND_SEND_VAR :
8019- case ZEND_SEND_VAR_EX :
8020- case ZEND_SEND_FUNC_ARG :
8021- case ZEND_SEND_REF :
8022- case ZEND_SEND_VAR_NO_REF :
8023- case ZEND_SEND_VAR_NO_REF_EX :
8024- case ZEND_SEND_USER :
8025- if (level == 0 ) {
8026- /* For named args, the number of arguments is up to date. */
8027- if (opline -> op2_type != IS_CONST ) {
8028- ZEND_CALL_NUM_ARGS (call ) = opline -> op2 .num ;
8029- }
8030- do_exit = true;
8031- }
8032- break ;
8033- case ZEND_SEND_ARRAY :
8034- case ZEND_SEND_UNPACK :
8035- case ZEND_CHECK_UNDEF_ARGS :
8036- if (level == 0 ) {
8037- do_exit = true;
8038- }
8039- break ;
8040- }
8041- if (!do_exit ) {
8042- opline -- ;
8043- }
8044- } while (!do_exit );
8045-
8046- //zend_vm_stack_free_args(call);
8047- //zend_vm_stack_free_extra_args(call);
8048- //EX(call) = call->prev_execute_data;
8049- //zend_vm_stack_free_call_frame(call);
8050- //call = EX(call);
80517984 }
80527985
80537986 if (throw_op -> result_type & (IS_VAR | IS_TMP_VAR )) {
0 commit comments