summaryrefslogtreecommitdiff
path: root/Zend/zend_list.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2014-05-08 02:48:31 +0400
committerDmitry Stogov <dmitry@zend.com>2014-05-08 02:48:31 +0400
commitfa7008bb247240556b6bd5950576d3f455621f82 (patch)
tree471d2a9d3a6c0c5089ac71353c86e418bf194bef /Zend/zend_list.c
parent223df9ceea08a9b186f320114e40914552f48716 (diff)
downloadphp-git-fa7008bb247240556b6bd5950576d3f455621f82.tar.gz
Fixed resource destruction
Diffstat (limited to 'Zend/zend_list.c')
-rw-r--r--Zend/zend_list.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/Zend/zend_list.c b/Zend/zend_list.c
index 7892b7057c..7ebe9c13a7 100644
--- a/Zend/zend_list.c
+++ b/Zend/zend_list.c
@@ -46,13 +46,21 @@ ZEND_API zval *zend_list_insert(void *ptr, int type TSRMLS_DC)
ZEND_API int _zend_list_delete(zend_resource *res TSRMLS_DC)
{
- if (GC_REFCOUNT(res) <= 0) {
+ if (--GC_REFCOUNT(res) <= 0) {
return zend_hash_index_del(&EG(regular_list), res->handle);
} else {
return SUCCESS;
}
}
+ZEND_API int _zend_list_free(zend_resource *res TSRMLS_DC)
+{
+ if (GC_REFCOUNT(res) <= 0) {
+ return zend_hash_index_del(&EG(regular_list), res->handle);
+ } else {
+ return SUCCESS;
+ }
+}
static void zend_resource_dtor(zend_resource *res TSRMLS_DC)
{