diff options
author | Dmitry Stogov <dmitry@zend.com> | 2018-01-16 11:39:51 +0300 |
---|---|---|
committer | Dmitry Stogov <dmitry@zend.com> | 2018-01-16 11:39:51 +0300 |
commit | 4861373182520e464b94daaca762b17487d32312 (patch) | |
tree | ab880b6b6898c4d31c7db94eff315f55a41c3d70 /Zend/zend_objects_API.c | |
parent | b279aea2bf5262f4bca600dd69202ba32e47fd81 (diff) | |
download | php-git-4861373182520e464b94daaca762b17487d32312.tar.gz |
Replace checks with asserts
Diffstat (limited to 'Zend/zend_objects_API.c')
-rw-r--r-- | Zend/zend_objects_API.c | 63 |
1 files changed, 30 insertions, 33 deletions
diff --git a/Zend/zend_objects_API.c b/Zend/zend_objects_API.c index b970f0da8c..a8d9d0ea25 100644 --- a/Zend/zend_objects_API.c +++ b/Zend/zend_objects_API.c @@ -160,42 +160,39 @@ ZEND_API void ZEND_FASTCALL zend_objects_store_del(zend_object *object) /* {{{ * otherwise, when the destructor ends the storage might be freed when the refcount reaches 0 a second time */ - if (EG(objects_store).object_buckets && - IS_OBJ_VALID(EG(objects_store).object_buckets[object->handle])) { - if (GC_REFCOUNT(object) == 0) { - if (!(GC_FLAGS(object) & IS_OBJ_DESTRUCTOR_CALLED)) { - GC_FLAGS(object) |= IS_OBJ_DESTRUCTOR_CALLED; - - if (object->handlers->dtor_obj - && (object->handlers->dtor_obj != zend_objects_destroy_object - || object->ce->destructor)) { - GC_ADDREF(object); - object->handlers->dtor_obj(object); - GC_DELREF(object); - } - } + ZEND_ASSERT(EG(objects_store).object_buckets != NULL); + ZEND_ASSERT(IS_OBJ_VALID(EG(objects_store).object_buckets[object->handle])); + ZEND_ASSERT(GC_REFCOUNT(object) == 0); + + if (!(GC_FLAGS(object) & IS_OBJ_DESTRUCTOR_CALLED)) { + GC_FLAGS(object) |= IS_OBJ_DESTRUCTOR_CALLED; + + if (object->handlers->dtor_obj + && (object->handlers->dtor_obj != zend_objects_destroy_object + || object->ce->destructor)) { + GC_ADDREF(object); + object->handlers->dtor_obj(object); + GC_DELREF(object); + } + } - if (GC_REFCOUNT(object) == 0) { - uint32_t handle = object->handle; - void *ptr; - - EG(objects_store).object_buckets[handle] = SET_OBJ_INVALID(object); - if (!(GC_FLAGS(object) & IS_OBJ_FREE_CALLED)) { - GC_FLAGS(object) |= IS_OBJ_FREE_CALLED; - if (object->handlers->free_obj) { - GC_ADDREF(object); - object->handlers->free_obj(object); - GC_DELREF(object); - } - } - ptr = ((char*)object) - object->handlers->offset; - GC_REMOVE_FROM_BUFFER(object); - efree(ptr); - ZEND_OBJECTS_STORE_ADD_TO_FREE_LIST(handle); + if (GC_REFCOUNT(object) == 0) { + uint32_t handle = object->handle; + void *ptr; + + EG(objects_store).object_buckets[handle] = SET_OBJ_INVALID(object); + if (!(GC_FLAGS(object) & IS_OBJ_FREE_CALLED)) { + GC_FLAGS(object) |= IS_OBJ_FREE_CALLED; + if (object->handlers->free_obj) { + GC_ADDREF(object); + object->handlers->free_obj(object); + GC_DELREF(object); } - } else { - GC_DELREF(object); } + ptr = ((char*)object) - object->handlers->offset; + GC_REMOVE_FROM_BUFFER(object); + efree(ptr); + ZEND_OBJECTS_STORE_ADD_TO_FREE_LIST(handle); } } /* }}} */ |