cvs: ZendEngine2 / zend_API.h
| From: | Marcus Boerger | Date: | Sat, 29 Nov 2003 18:15:12 +0000 |
| Subject: | cvs: ZendEngine2 / zend_API.h | ||
| Groups: | php.zend-engine.cvs | ||
| Request: | Send a blank email to php-zend-engine-cvs+get-2027@lists.php.net to get a copy of this message | ||
helly Sat Nov 29 13:15:12 2003 EDT
Modified files:
/ZendEngine2 zend_API.h
Log:
Add macros to return values of other zvals.
This is needed because one cannot use REPLACE_ZVAL_VALUE with return_value.
Index: ZendEngine2/zend_API.h
diff -u ZendEngine2/zend_API.h:1.169 ZendEngine2/zend_API.h:1.170
--- ZendEngine2/zend_API.h:1.169 Tue Nov 18 14:18:54 2003
+++ ZendEngine2/zend_API.h Sat Nov 29 13:15:11 2003
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_API.h,v 1.169 2003/11/18 19:18:54 helly Exp $ */
+/* $Id: zend_API.h,v 1.170 2003/11/29 18:15:11 helly Exp $ */
#ifndef ZEND_API_H
#define ZEND_API_H
@@ -377,6 +377,21 @@
(z)->type = IS_STRING; \
}
+#define ZVAL_ZVAL(z, zv, copy, dtor) { \
+ int is_ref, refcount; \
+ is_ref = (z)->is_ref; \
+ refcount = (z)->refcount; \
+ *(z) = *(zv); \
+ if (copy) { \
+ zval_copy_ctor(z); \
+ } \
+ if (dtor) { \
+ zval_ptr_dtor(zv); \
+ } \
+ (z)->is_ref = is_ref; \
+ (z)->refcount = refcount; \
+ }
+
#define ZVAL_FALSE(z) ZVAL_BOOL(z, 0)
#define ZVAL_TRUE(z) ZVAL_BOOL(z, 1)
@@ -388,6 +403,7 @@
#define RETVAL_STRING(s, duplicate) ZVAL_STRING(return_value, s, duplicate)
#define RETVAL_STRINGL(s, l, duplicate) ZVAL_STRINGL(return_value, s, l, duplicate)
#define RETVAL_EMPTY_STRING() ZVAL_EMPTY_STRING(return_value)
+#define RETVAL_ZVAL(zv, copy, dtor) ZVAL_ZVAL(return_value, zv, copy, dtor)
#define RETVAL_FALSE ZVAL_BOOL(return_value, 0)
#define RETVAL_TRUE ZVAL_BOOL(return_value, 1)
@@ -399,6 +415,7 @@
#define RETURN_STRING(s, duplicate) { RETVAL_STRING(s, duplicate); return; }
#define RETURN_STRINGL(s, l, duplicate) { RETVAL_STRINGL(s, l, duplicate); return; }
#define RETURN_EMPTY_STRING() { RETVAL_EMPTY_STRING(); return; }
+#define RETURN_ZVAL(zv, copy, dtor) { RETVAL_ZVAL(zv, copy, dtor); return; }
#define RETURN_FALSE { RETVAL_FALSE; return; }
#define RETURN_TRUE { RETVAL_TRUE; return; }