diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c index 7918e97e22d..e0401c29232 100644 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@ -142,10 +142,10 @@ static inline zval *_get_object_zval_ptr(znode *node, temp_variable *Ts, int *sh return &Ts[node->u.var].tmp_var; break; case IS_VAR: - if (Ts[node->u.var].var.ptr) { - PZVAL_UNLOCK(Ts[node->u.var].var.ptr); + if (Ts[node->u.var].var.ptr_ptr) { + PZVAL_UNLOCK(*Ts[node->u.var].var.ptr_ptr); *should_free = 0; - return Ts[node->u.var].var.ptr; + return *Ts[node->u.var].var.ptr_ptr; } else { if (Ts[node->u.var].EA.type==IS_STRING_OFFSET) { PZVAL_UNLOCK(Ts[node->u.var].EA.data.str_offset.str);