com php-src: Reored conditions: Zend/zend_vm_def.h Zend /zend_vm_execute.h

From: Date: Mon, 29 Dec 2014 11:20:52 +0000
Subject: com php-src: Reored conditions: Zend/zend_vm_def.h Zend /zend_vm_execute.h
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-83919@lists.php.net to get a copy of this message
Commit: 0fa50fb95d12c27fe9a1d7fc810085caad543472 Author: Dmitry Stogov <dmitry@zend.com> Mon, 29 Dec 2014 14:20:52 +0300 Parents: d909a837e2c9310850bab9372a79b177fcc5091c Branches: master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=0fa50fb95d12c27fe9a1d7fc810085caad543472 Log: Reored conditions Changed paths: M Zend/zend_vm_def.h M Zend/zend_vm_execute.h Diff: diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h index e7f8300..f1590ad 100644 --- a/Zend/zend_vm_def.h +++ b/Zend/zend_vm_def.h @@ -2765,7 +2765,36 @@ ZEND_VM_HANDLER(60, ZEND_DO_FCALL, ANY, ANY) LOAD_OPLINE(); - if (UNEXPECTED(fbc->type == ZEND_INTERNAL_FUNCTION)) { + if (EXPECTED(fbc->type == ZEND_USER_FUNCTION)) { + EG(scope) = fbc->common.scope; + if (UNEXPECTED((fbc->common.fn_flags & ZEND_ACC_GENERATOR) != 0)) { + if (RETURN_VALUE_USED(opline)) { + zend_generator_create_zval(call, &fbc->op_array, EX_VAR(opline->result.var)); + } else { + zend_vm_stack_free_args(call); + } + + zend_vm_stack_free_call_frame(call); + } else { + ret = NULL; + call->symbol_table = NULL; + if (RETURN_VALUE_USED(opline)) { + ret = EX_VAR(opline->result.var); + ZVAL_NULL(ret); + Z_VAR_FLAGS_P(ret) = 0; + } + + call->prev_execute_data = execute_data; + i_init_func_execute_data(call, &fbc->op_array, ret); + + if (EXPECTED(zend_execute_ex == execute_ex)) { + ZEND_VM_ENTER(); + } else { + ZEND_ADD_CALL_FLAG(call, ZEND_CALL_TOP); + zend_execute_ex(call); + } + } + } else if (EXPECTED(fbc->type < ZEND_USER_FUNCTION)) { int should_change_scope = 0; zval *ret; @@ -2833,35 +2862,6 @@ ZEND_VM_HANDLER(60, ZEND_DO_FCALL, ANY, ANY) } else { ZEND_VM_C_GOTO(fcall_end); } - } else if (EXPECTED(fbc->type == ZEND_USER_FUNCTION)) { - EG(scope) = fbc->common.scope; - if (UNEXPECTED((fbc->common.fn_flags & ZEND_ACC_GENERATOR) != 0)) { - if (RETURN_VALUE_USED(opline)) { - zend_generator_create_zval(call, &fbc->op_array, EX_VAR(opline->result.var)); - } else { - zend_vm_stack_free_args(call); - } - - zend_vm_stack_free_call_frame(call); - } else { - ret = NULL; - call->symbol_table = NULL; - if (RETURN_VALUE_USED(opline)) { - ret = EX_VAR(opline->result.var); - ZVAL_NULL(ret); - Z_VAR_FLAGS_P(ret) = 0; - } - - call->prev_execute_data = execute_data; - i_init_func_execute_data(call, &fbc->op_array, ret); - - if (EXPECTED(zend_execute_ex == execute_ex)) { - ZEND_VM_ENTER(); - } else { - ZEND_ADD_CALL_FLAG(call, ZEND_CALL_TOP); - zend_execute_ex(call); - } - } } else { /* ZEND_OVERLOADED_FUNCTION */ EG(scope) = fbc->common.scope; diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h index 7cb915f...c78dca8 100644 --- a/Zend/zend_vm_execute.h +++ b/Zend/zend_vm_execute..h @@ -513,7 +513,36 @@ static int ZEND_FASTCALL ZEND_DO_FCALL_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS) LOAD_OPLINE(); - if (UNEXPECTED(fbc->type == ZEND_INTERNAL_FUNCTION)) { + if (EXPECTED(fbc->type == ZEND_USER_FUNCTION)) { + EG(scope) = fbc->common.scope; + if (UNEXPECTED((fbc->common.fn_flags & ZEND_ACC_GENERATOR) != 0)) { + if (RETURN_VALUE_USED(opline)) { + zend_generator_create_zval(call, &fbc->op_array, EX_VAR(opline->result.var)); + } else { + zend_vm_stack_free_args(call); + } + + zend_vm_stack_free_call_frame(call); + } else { + ret = NULL; + call->symbol_table = NULL; + if (RETURN_VALUE_USED(opline)) { + ret = EX_VAR(opline->result.var); + ZVAL_NULL(ret); + Z_VAR_FLAGS_P(ret) = 0; + } + + call->prev_execute_data = execute_data; + i_init_func_execute_data(call, &fbc->op_array, ret); + + if (EXPECTED(zend_execute_ex == execute_ex)) { + ZEND_VM_ENTER(); + } else { + ZEND_ADD_CALL_FLAG(call, ZEND_CALL_TOP); + zend_execute_ex(call); + } + } + } else if (EXPECTED(fbc->type < ZEND_USER_FUNCTION)) { int should_change_scope = 0; zval *ret; @@ -581,35 +610,6 @@ static int ZEND_FASTCALL ZEND_DO_FCALL_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS) } else { goto fcall_end; } - } else if (EXPECTED(fbc->type == ZEND_USER_FUNCTION)) { - EG(scope) = fbc->common.scope; - if (UNEXPECTED((fbc->common.fn_flags & ZEND_ACC_GENERATOR) != 0)) { - if (RETURN_VALUE_USED(opline)) { - zend_generator_create_zval(call, &fbc->op_array, EX_VAR(opline->result.var)); - } else { - zend_vm_stack_free_args(call); - } - - zend_vm_stack_free_call_frame(call); - } else { - ret = NULL; - call->symbol_table = NULL; - if (RETURN_VALUE_USED(opline)) { - ret = EX_VAR(opline->result.var); - ZVAL_NULL(ret); - Z_VAR_FLAGS_P(ret) = 0; - } - - call->prev_execute_data = execute_data; - i_init_func_execute_data(call, &fbc->op_array, ret); - - if (EXPECTED(zend_execute_ex == execute_ex)) { - ZEND_VM_ENTER(); - } else { - ZEND_ADD_CALL_FLAG(call, ZEND_CALL_TOP); - zend_execute_ex(call); - } - } } else { /* ZEND_OVERLOADED_FUNCTION */ EG(scope) = fbc->common.scope;

« previous php.cvs (#83919) next »