Skip to content

Commit 9043563

Browse files
committed
Make zend_list_free return void
And assert that the refcount is zero. This function should only be used internally as the resource destructor.
1 parent e15409b commit 9043563

File tree

2 files changed

+5
-8
lines changed

2 files changed

+5
-8
lines changed

Zend/zend_list.c

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -51,13 +51,10 @@ ZEND_API int ZEND_FASTCALL zend_list_delete(zend_resource *res)
5151
}
5252
}
5353

54-
ZEND_API int ZEND_FASTCALL zend_list_free(zend_resource *res)
54+
ZEND_API void ZEND_FASTCALL zend_list_free(zend_resource *res)
5555
{
56-
if (GC_REFCOUNT(res) <= 0) {
57-
return zend_hash_index_del(&EG(regular_list), res->handle);
58-
} else {
59-
return SUCCESS;
60-
}
56+
ZEND_ASSERT(GC_REFCOUNT(res) == 0);
57+
zend_hash_index_del(&EG(regular_list), res->handle);
6158
}
6259

6360
static void zend_resource_dtor(zend_resource *res)
@@ -82,7 +79,7 @@ static void zend_resource_dtor(zend_resource *res)
8279
ZEND_API int ZEND_FASTCALL zend_list_close(zend_resource *res)
8380
{
8481
if (GC_REFCOUNT(res) <= 0) {
85-
return zend_list_free(res);
82+
zend_list_free(res);
8683
} else if (res->type >= 0) {
8784
zend_resource_dtor(res);
8885
}

Zend/zend_list.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ int zend_init_rsrc_list_dtors(void);
5353
void zend_destroy_rsrc_list_dtors(void);
5454

5555
ZEND_API zval* ZEND_FASTCALL zend_list_insert(void *ptr, int type);
56-
ZEND_API int ZEND_FASTCALL zend_list_free(zend_resource *res);
56+
ZEND_API void ZEND_FASTCALL zend_list_free(zend_resource *res);
5757
ZEND_API int ZEND_FASTCALL zend_list_delete(zend_resource *res);
5858
ZEND_API int ZEND_FASTCALL zend_list_close(zend_resource *res);
5959

0 commit comments

Comments
 (0)