summaryrefslogtreecommitdiff
path: root/ext/rpc/com/com_wrapper.h
diff options
context:
space:
mode:
Diffstat (limited to 'ext/rpc/com/com_wrapper.h')
-rw-r--r--ext/rpc/com/com_wrapper.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/ext/rpc/com/com_wrapper.h b/ext/rpc/com/com_wrapper.h
index 62d08c3acd..2930f86fd9 100644
--- a/ext/rpc/com/com_wrapper.h
+++ b/ext/rpc/com/com_wrapper.h
@@ -24,13 +24,19 @@ typedef struct comval_ {
END_EXTERN_C()
#define ZVAL_COM(z,o) { \
- zval *handle; \
+ zval *handle = NULL; \
+ ZVAL_COM_EX(z,o,handle) \
+ }
+
+#define ZVAL_COM_EX(z,o,handle) { \
HashTable *properties; \
\
ALLOC_HASHTABLE(properties); \
zend_hash_init(properties, 0, NULL, ZVAL_PTR_DTOR, 0); \
\
- MAKE_STD_ZVAL(handle); \
+ if (handle == NULL) { \
+ MAKE_STD_ZVAL(handle); \
+ } \
ZVAL_LONG(handle, zend_list_insert((o), IS_COM)); \
\
zval_copy_ctor(handle); \