summaryrefslogtreecommitdiff
path: root/Zend/zend_vm_execute.h
diff options
context:
space:
mode:
authorXinchen Hui <laruence@php.net>2015-05-04 19:21:54 +0800
committerXinchen Hui <laruence@php.net>2015-05-04 19:21:54 +0800
commit7af9ba23a75a06ef9ef78273b440fe373f1139e3 (patch)
tree56eb782b06440aa6d1855e36dde60e1138b078a8 /Zend/zend_vm_execute.h
parentfff921d7a3041769023e416082cb88c55807c883 (diff)
downloadphp-git-7af9ba23a75a06ef9ef78273b440fe373f1139e3.tar.gz
Saving the latter checking in most cases
Diffstat (limited to 'Zend/zend_vm_execute.h')
-rw-r--r--Zend/zend_vm_execute.h7
1 files changed, 3 insertions, 4 deletions
diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h
index 706d00b1b4..6ab02321d5 100644
--- a/Zend/zend_vm_execute.h
+++ b/Zend/zend_vm_execute.h
@@ -6494,7 +6494,6 @@ static int ZEND_FASTCALL ZEND_DECLARE_LAMBDA_FUNCTION_SPEC_CONST_UNUSED_HANDLER
{
USE_OPLINE
zend_function *op_array;
- int closure_is_static, closure_is_being_defined_inside_static_context;
SAVE_OPLINE();
@@ -6503,9 +6502,9 @@ static int ZEND_FASTCALL ZEND_DECLARE_LAMBDA_FUNCTION_SPEC_CONST_UNUSED_HANDLER
zend_error_noreturn(E_ERROR, "Base lambda function for closure not found");
}
- closure_is_static = op_array->common.fn_flags & ZEND_ACC_STATIC;
- closure_is_being_defined_inside_static_context = EX(prev_execute_data) && EX(prev_execute_data)->function_state.function->common.fn_flags & ZEND_ACC_STATIC;
- if (closure_is_static || closure_is_being_defined_inside_static_context) {
+ if (UNEXPECTED((op_array->common.fn_flags & ZEND_ACC_STATIC) ||
+ (EX(prev_execute_data) &&
+ EX(prev_execute_data)->function_state.function->common.fn_flags & ZEND_ACC_STATIC))) {
zend_create_closure(&EX_T(opline->result.var).tmp_var, (zend_function *) op_array, EG(called_scope), NULL TSRMLS_CC);
} else {
zend_create_closure(&EX_T(opline->result.var).tmp_var, (zend_function *) op_array, EG(scope), EG(This) TSRMLS_CC);