cvs: ZendEngine2 / zend.c

From: Date: Wed, 01 Mar 2006 16:15:40 +0000
Subject: cvs: ZendEngine2 / zend.c
Groups: php.zend-engine.cvs 
Request: Send a blank email to php-zend-engine-cvs+get-4630@lists.php.net to get a copy of this message
helly Wed Mar 1 16:15:40 2006 UTC Modified files: /ZendEngine2 zend.c Log: - Fix string conversion issues http://cvs.php.net/viewcvs.cgi/ZendEngine2/zend.c?r1=1.338&r2=1.339&diff_format=u Index: ZendEngine2/zend.c diff -u ZendEngine2/zend.c:1.338 ZendEngine2/zend.c:1.339 --- ZendEngine2/zend.c:1.338 Sun Feb 26 11:57:13 2006 +++ ZendEngine2/zend.c Wed Mar 1 16:15:40 2006 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend.c,v 1.338 2006/02/26 11:57:13 dmitry Exp $ */ +/* $Id: zend.c,v 1.339 2006/03/01 16:15:40 helly Exp $ */ #include "zend.h" #include "zend_extensions.h" @@ -360,7 +360,13 @@ zval *z = Z_OBJ_HANDLER_P(expr, get)(expr TSRMLS_CC); if(Z_TYPE_P(z) != IS_OBJECT) { zend_make_string_zval(z, expr_copy, use_copy); - FREE_ZVAL(z); + if (*use_copy) { + FREE_ZVAL(z); + } else { + ZVAL_ZVAL(expr_copy, z, 0, 1); + *use_copy = 1; + return; + } break; } } @@ -421,7 +427,13 @@ zval *z = Z_OBJ_HANDLER_P(expr, get)(expr TSRMLS_CC); if(Z_TYPE_P(z) != IS_OBJECT) { zend_make_printable_zval(z, expr_copy, use_copy); - FREE_ZVAL(z); + if (*use_copy) { + FREE_ZVAL(z); + } else { + ZVAL_ZVAL(expr_copy, z, 0, 1); + *use_copy = 1; + return; + } break; } } @@ -465,7 +477,13 @@ zval *z = Z_OBJ_HANDLER_P(expr, get)(expr TSRMLS_CC); if(Z_TYPE_P(z) != IS_OBJECT) { zend_make_unicode_zval(z, expr_copy, use_copy); - FREE_ZVAL(z); + if (*use_copy) { + FREE_ZVAL(z); + } else { + ZVAL_ZVAL(expr_copy, z, 0, 1); + *use_copy = 1; + return; + } break; } }

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