cvs: ZendEngine2 / zend_execute.c

From: Date: Sun, 08 Jun 2003 18:52:53 +0000
Subject: cvs: ZendEngine2 / zend_execute.c
Groups: php.zend-engine.cvs 
Request: Send a blank email to php-zend-engine-cvs+get-1351@lists.php.net to get a copy of this message
zeev Sun Jun 8 14:52:53 2003 EDT Modified files: /ZendEngine2 zend_execute.c Log: Fix handling of object property assignments in switch expressions (bug #23925) Index: ZendEngine2/zend_execute.c diff -u ZendEngine2/zend_execute.c:1.469 ZendEngine2/zend_execute.c:1.470 --- ZendEngine2/zend_execute.c:1.469 Mon Jun 2 08:13:11 2003 +++ ZendEngine2/zend_execute.c Sun Jun 8 14:52:53 2003 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_execute.c,v 1.469 2003/06/02 12:13:11 stas Exp $ */ +/* $Id: zend_execute.c,v 1.470 2003/06/08 18:52:53 zeev Exp $ */ #define ZEND_INTENSIVE_DEBUGGING 0 @@ -3054,13 +3054,12 @@ int switch_expr_is_overloaded=0; if (EX(opline)->op1.op_type==IS_VAR) { - if (EX_T(EX(opline)->op1.u.var).var.ptr_ptr) { - PZVAL_LOCK(*EX_T(EX(opline)->op1.u.var).var.ptr_ptr); + if (EX_T(EX(opline)->op1.u.var).var.ptr_ptr + || (EX_T(EX(opline)->op1.u.var).var.ptr && EX_T(EX(opline)->op1.u.var).EA.type!=IS_STRING_OFFSET)) { + PZVAL_LOCK(EX_T(EX(opline)->op1.u.var).var.ptr); } else { switch_expr_is_overloaded = 1; - if (EX_T(EX(opline)->op1.u.var).EA.type==IS_STRING_OFFSET) { - EX_T(EX(opline)->op1.u.var).EA.data.str_offset.str->refcount++; - } + EX_T(EX(opline)->op1.u.var).EA.data.str_offset.str->refcount++; } } is_equal_function(&EX_T(EX(opline)->result.u.var).tmp_var,

« previous php.zend-engine.cvs (#1351) next »