From 82563bde6021a7571bf184fdc91c5f591b611c37 Mon Sep 17 00:00:00 2001 From: Zeev Suraski Date: Sat, 10 Jul 1999 10:55:55 +0000 Subject: [PATCH] Final tweaks --- Zend/zend_execute.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c index 1de0f784bd..bab7fe5766 100644 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@ -398,6 +398,7 @@ static inline void zend_fetch_var_address(znode *result, znode *op1, znode *op2, break; case ZEND_FETCH_GLOBAL: if (op1->op_type == IS_VAR) { + PZVAL_LOCK(varname); EG(AiCount)++; } target_symbol_table = &EG(symbol_table); @@ -1101,6 +1102,7 @@ binary_assign_op_addr: { break; case ZEND_FETCH_DIM_R: if (opline->extended_value == ZEND_FETCH_NO_AI_COUNT) { + PZVAL_LOCK(*Ts[opline->op1.u.var].var); EG(AiCount)++; } zend_fetch_dimension_address(&opline->result, &opline->op1, &opline->op2, Ts, BP_VAR_R ELS_CC); @@ -1289,7 +1291,9 @@ binary_assign_op_addr: { if (opline->extended_value & ZEND_CTOR_CALL) { /* constructor call */ EG(AiCount)++; /* for op1 */ + PZVAL_LOCK(*Ts[opline->op1.u.var].var); if (opline->op2.op_type==IS_VAR) { + PZVAL_LOCK(*Ts[opline->op2.u.var].var); EG(AiCount)++; } } @@ -1613,6 +1617,7 @@ send_by_ref: break; case ZEND_CASE: if (opline->op1.op_type == IS_VAR) { + PZVAL_LOCK(*Ts[opline->op1.u.var].var); EG(AiCount)++; } is_equal_function(&Ts[opline->result.u.var].tmp_var, @@ -1871,6 +1876,7 @@ send_by_ref: zval *object; EG(AiCount)++; + PZVAL_LOCK(*Ts[opline->op1.u.var].var); object = get_zval_ptr(&opline->op1, Ts, &free_op1, BP_VAR_R); if (!object->value.obj.ce->handle_function_call && !zend_hash_exists(&object->value.obj.ce->function_table, object->value.obj.ce->name, object->value.obj.ce->name_length+1)) { -- 2.40.0