From: Ilia Alshanetsky Date: Sat, 29 Nov 2003 17:33:25 +0000 (+0000) Subject: Restore original patch for bug #26281. X-Git-Tag: php-5.0.0b3RC1~522 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=cf196ac625ceab7cd11e858e4ae4374f972c3131;p=php Restore original patch for bug #26281. # Andi if you have a time & interest please see if perhaps a better # solution can be implemented. Thanks. --- diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c index be3ca78e22..b3702ad15c 100644 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@ -194,7 +194,11 @@ static inline void zend_switch_free(zend_op *opline, temp_variable *Ts TSRMLS_DC switch (opline->op1.op_type) { case IS_VAR: if (!T(opline->op1.u.var).var.ptr_ptr) { - zval_ptr_dtor(&T(opline->op1.u.var).var.ptr); + temp_variable *T = &T(opline->op1.u.var); + /* perform the equivalent of equivalent of a + * quick & silent get_zval_ptr, and FREE_OP + */ + PZVAL_UNLOCK(T->EA.data.str_offset.str); } else { zval_ptr_dtor(&T(opline->op1.u.var).var.ptr); if (opline->extended_value) { /* foreach() free */