diff options
| author | Xinchen Hui <laruence@php.net> | 2015-05-04 19:22:22 +0800 |
|---|---|---|
| committer | Xinchen Hui <laruence@php.net> | 2015-05-04 19:22:22 +0800 |
| commit | 7289981c615dcfb1eeb2a7f55fc43bea795d10d6 (patch) | |
| tree | 733a97139489b4fe885f75b1942389df979dde66 | |
| parent | e49a0e17b72be47ff56b70d22501799f6347c565 (diff) | |
| parent | 7af9ba23a75a06ef9ef78273b440fe373f1139e3 (diff) | |
| download | php-git-7289981c615dcfb1eeb2a7f55fc43bea795d10d6.tar.gz | |
Merge branch 'PHP-5.5' into PHP-5.6
| -rw-r--r-- | Zend/zend_vm_def.h | 7 | ||||
| -rw-r--r-- | Zend/zend_vm_execute.h | 7 |
2 files changed, 6 insertions, 8 deletions
diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h index 6f55e64bca..dbac90c5e0 100644 --- a/Zend/zend_vm_def.h +++ b/Zend/zend_vm_def.h @@ -5425,7 +5425,6 @@ ZEND_VM_HANDLER(153, ZEND_DECLARE_LAMBDA_FUNCTION, CONST, UNUSED) { USE_OPLINE zend_function *op_array; - int closure_is_static, closure_is_being_defined_inside_static_context; SAVE_OPLINE(); @@ -5434,9 +5433,9 @@ ZEND_VM_HANDLER(153, ZEND_DECLARE_LAMBDA_FUNCTION, CONST, UNUSED) 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); diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h index 64ff29a159..0db76ed5e3 100644 --- a/Zend/zend_vm_execute.h +++ b/Zend/zend_vm_execute.h @@ -6801,7 +6801,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(); @@ -6810,9 +6809,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); |
