Merge branch 'PHP-5.5'

This commit is contained in:
Nikita Popov 2012-12-21 01:58:29 +01:00
commit 4509016309
2 changed files with 6 additions and 10 deletions

View File

@ -1843,7 +1843,7 @@ ZEND_VM_HANDLER(39, ZEND_ASSIGN_REF, VAR|CV, VAR|CV)
ZEND_VM_HELPER(zend_leave_helper, ANY, ANY) ZEND_VM_HELPER(zend_leave_helper, ANY, ANY)
{ {
zend_bool nested; zend_bool nested = EX(nested);
zend_op_array *op_array = EX(op_array); zend_op_array *op_array = EX(op_array);
EG(current_execute_data) = EX(prev_execute_data); EG(current_execute_data) = EX(prev_execute_data);
@ -1852,14 +1852,12 @@ ZEND_VM_HELPER(zend_leave_helper, ANY, ANY)
i_free_compiled_variables(execute_data); i_free_compiled_variables(execute_data);
} }
zend_vm_stack_free((char*)execute_data - (ZEND_MM_ALIGNED_SIZE(sizeof(temp_variable)) * op_array->T) TSRMLS_CC);
if ((op_array->fn_flags & ZEND_ACC_CLOSURE) && op_array->prototype) { if ((op_array->fn_flags & ZEND_ACC_CLOSURE) && op_array->prototype) {
zval_ptr_dtor((zval**)&op_array->prototype); zval_ptr_dtor((zval**)&op_array->prototype);
} }
nested = EX(nested);
zend_vm_stack_free((char*)execute_data - (ZEND_MM_ALIGNED_SIZE(sizeof(temp_variable)) * op_array->T) TSRMLS_CC);
if (nested) { if (nested) {
execute_data = EG(current_execute_data); execute_data = EG(current_execute_data);
} }

View File

@ -383,7 +383,7 @@ ZEND_API void zend_execute(zend_op_array *op_array TSRMLS_DC)
static int ZEND_FASTCALL zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS) static int ZEND_FASTCALL zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS)
{ {
zend_bool nested; zend_bool nested = EX(nested);
zend_op_array *op_array = EX(op_array); zend_op_array *op_array = EX(op_array);
EG(current_execute_data) = EX(prev_execute_data); EG(current_execute_data) = EX(prev_execute_data);
@ -392,14 +392,12 @@ static int ZEND_FASTCALL zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS)
i_free_compiled_variables(execute_data); i_free_compiled_variables(execute_data);
} }
zend_vm_stack_free((char*)execute_data - (ZEND_MM_ALIGNED_SIZE(sizeof(temp_variable)) * op_array->T) TSRMLS_CC);
if ((op_array->fn_flags & ZEND_ACC_CLOSURE) && op_array->prototype) { if ((op_array->fn_flags & ZEND_ACC_CLOSURE) && op_array->prototype) {
zval_ptr_dtor((zval**)&op_array->prototype); zval_ptr_dtor((zval**)&op_array->prototype);
} }
nested = EX(nested);
zend_vm_stack_free((char*)execute_data - (ZEND_MM_ALIGNED_SIZE(sizeof(temp_variable)) * op_array->T) TSRMLS_CC);
if (nested) { if (nested) {
execute_data = EG(current_execute_data); execute_data = EG(current_execute_data);
} }