com php-src: Reored conditions: Zend/zend_vm_def.h Zend /zend_vm_execute.h
| From: | Dmitry Stogov | 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;