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)
{
void zend_destroy_rsrc_list_dtors(void);
ZEND_API zval *zend_list_insert(void *ptr, int type TSRMLS_DC);
+ZEND_API int _zend_list_free(zend_resource *res TSRMLS_DC);
ZEND_API int _zend_list_delete(zend_resource *res TSRMLS_DC);
ZEND_API int _zend_list_close(zend_resource *res TSRMLS_DC);
+#define zend_list_free(res) _zend_list_free(res TSRMLS_CC)
#define zend_list_delete(res) _zend_list_delete(res TSRMLS_CC)
#define zend_list_close(res) _zend_list_close(res TSRMLS_CC)
if (--GC_REFCOUNT(res) == 0) {
/* destroy resource */
- zend_list_delete(res);
+ zend_list_free(res);
}
break;
}
TSRMLS_FETCH();
/* destroy resource */
- zend_list_delete(res);
+ zend_list_free(res);
break;
}
case IS_REFERENCE: {
static void php_mysql_set_default_link(zend_resource *link TSRMLS_DC)
{
if (MySG(default_link) != NULL) {
- if (--GC_REFCOUNT((MySG(default_link))) == 0) {
- zend_list_delete(MySG(default_link));
- }
+ zend_list_delete(MySG(default_link));
}
++GC_REFCOUNT(link);
MySG(default_link) = link;
/* Close all handles to avoid a deadlock */
for (i = 0; i < proc->npipes; i++) {
if (proc->pipes[i] != 0) {
- if (--GC_REFCOUNT(proc->pipes[i]) <= 0) {
- zend_list_delete(proc->pipes[i]);
- }
+ zend_list_delete(proc->pipes[i]);
proc->pipes[i] = 0;
}
}