cvs: ZendEngine2 / zend.c
| From: | Marcus Boerger | 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;
}
}