]> granicus.if.org Git - php/commitdiff
this patch should fix a bug where intermediate comvals were not
authorHarald Radi <phanto@php.net>
Fri, 26 Apr 2002 18:20:45 +0000 (18:20 +0000)
committerHarald Radi <phanto@php.net>
Fri, 26 Apr 2002 18:20:45 +0000 (18:20 +0000)
released before they were freed. this caused outproc com server
to belive that they still referenced even when the php process
already terminated.

ext/com/com.h
ext/rpc/com/com_wrapper.h

index 99c17782dfda07b382594d316386a7da32930b9f..62d08c3acd9a2b9ded84b6e722051a00f40002d0 100644 (file)
@@ -30,8 +30,7 @@ END_EXTERN_C()
                        ALLOC_HASHTABLE(properties);                                                                                    \
                        zend_hash_init(properties, 0, NULL, ZVAL_PTR_DTOR, 0);                                  \
                                                                                                                                                                        \
-                       ALLOC_ZVAL(handle);                                                                                                             \
-                       INIT_PZVAL(handle);                                                                                                             \
+                       MAKE_STD_ZVAL(handle);                                                                                                  \
                        ZVAL_LONG(handle, zend_list_insert((o), IS_COM));                                               \
                                                                                                                                                                        \
                        zval_copy_ctor(handle);                                                                                                 \
@@ -46,7 +45,7 @@ END_EXTERN_C()
 #define ALLOC_COM(z)   (z) = (comval *) emalloc(sizeof(comval));                                       \
                                                C_REFCOUNT(z) = 0;
 
-#define FREE_COM(z)            efree(z);
+#define FREE_COM(z)            php_COM_destruct(z TSRMLS_CC);
 
 #define IS_COM                 php_COM_get_le_comval()
 
index 99c17782dfda07b382594d316386a7da32930b9f..62d08c3acd9a2b9ded84b6e722051a00f40002d0 100644 (file)
@@ -30,8 +30,7 @@ END_EXTERN_C()
                        ALLOC_HASHTABLE(properties);                                                                                    \
                        zend_hash_init(properties, 0, NULL, ZVAL_PTR_DTOR, 0);                                  \
                                                                                                                                                                        \
-                       ALLOC_ZVAL(handle);                                                                                                             \
-                       INIT_PZVAL(handle);                                                                                                             \
+                       MAKE_STD_ZVAL(handle);                                                                                                  \
                        ZVAL_LONG(handle, zend_list_insert((o), IS_COM));                                               \
                                                                                                                                                                        \
                        zval_copy_ctor(handle);                                                                                                 \
@@ -46,7 +45,7 @@ END_EXTERN_C()
 #define ALLOC_COM(z)   (z) = (comval *) emalloc(sizeof(comval));                                       \
                                                C_REFCOUNT(z) = 0;
 
-#define FREE_COM(z)            efree(z);
+#define FREE_COM(z)            php_COM_destruct(z TSRMLS_CC);
 
 #define IS_COM                 php_COM_get_le_comval()