]> granicus.if.org Git - php/commitdiff
added zval_del_ref() function
authorThies C. Arntzen <thies@php.net>
Thu, 7 Oct 1999 12:20:40 +0000 (12:20 +0000)
committerThies C. Arntzen <thies@php.net>
Thu, 7 Oct 1999 12:20:40 +0000 (12:20 +0000)
Zend/zend_variables.c
Zend/zend_variables.h

index da3fedb50582fd750c6cca07372d7e3b6e5bc0fa..6d5452c94ea465e6a976987140b9d36839d25f3b 100644 (file)
@@ -89,14 +89,22 @@ ZEND_API int _zval_dtor(zval *zvalue ZEND_FILE_LINE_DC)
 }
 
 
+void zval_del_ref(zval **p)
+{
+       (*p)->refcount--;
+       if ((*p)->refcount==0) {
+               zval_dtor(*p);
+               efree(*p);
+       }
+}                                                                                                                               
+
+
 void zval_add_ref(zval **p)
 {
        (*p)->refcount++;
 }
 
 
-
-
 ZEND_API int _zval_copy_ctor(zval *zvalue ZEND_FILE_LINE_DC)
 {
        switch (zvalue->type) {
index cdfa1c4ecaf7b231407e10c3d8f8eb60fc507474..ce1d7f06d5adc73e6cd899f22506eaece2f3d8f8 100644 (file)
@@ -49,6 +49,7 @@ END_EXTERN_C()
 
 
 void zval_add_ref(zval **p);
+void zval_del_ref(zval **p);
 
 #define PVAL_DESTRUCTOR (int (*)(void *)) zval_dtor_wrapper
 #define PVAL_PTR_DTOR (int (*)(void *)) zval_ptr_dtor_wrapper