Lines Matching refs:object
133 ZEND_API void zend_objects_store_put(zend_object *object) in zend_objects_store_put() argument
152 object->handle = handle; in zend_objects_store_put()
153 EG(objects_store).object_buckets[handle] = object; in zend_objects_store_put()
160 ZEND_API void zend_objects_store_del(zend_object *object) /* {{{ */ in zend_objects_store_del() argument
167 IS_OBJ_VALID(EG(objects_store).object_buckets[object->handle])) { in zend_objects_store_del()
168 if (GC_REFCOUNT(object) == 0) { in zend_objects_store_del()
169 if (!(GC_FLAGS(object) & IS_OBJ_DESTRUCTOR_CALLED)) { in zend_objects_store_del()
170 GC_FLAGS(object) |= IS_OBJ_DESTRUCTOR_CALLED; in zend_objects_store_del()
172 if (object->handlers->dtor_obj in zend_objects_store_del()
173 && (object->handlers->dtor_obj != zend_objects_destroy_object in zend_objects_store_del()
174 || object->ce->destructor)) { in zend_objects_store_del()
175 GC_REFCOUNT(object)++; in zend_objects_store_del()
176 object->handlers->dtor_obj(object); in zend_objects_store_del()
177 GC_REFCOUNT(object)--; in zend_objects_store_del()
181 if (GC_REFCOUNT(object) == 0) { in zend_objects_store_del()
182 uint32_t handle = object->handle; in zend_objects_store_del()
185 EG(objects_store).object_buckets[handle] = SET_OBJ_INVALID(object); in zend_objects_store_del()
186 if (!(GC_FLAGS(object) & IS_OBJ_FREE_CALLED)) { in zend_objects_store_del()
187 GC_FLAGS(object) |= IS_OBJ_FREE_CALLED; in zend_objects_store_del()
188 if (object->handlers->free_obj) { in zend_objects_store_del()
189 GC_REFCOUNT(object)++; in zend_objects_store_del()
190 object->handlers->free_obj(object); in zend_objects_store_del()
191 GC_REFCOUNT(object)--; in zend_objects_store_del()
194 ptr = ((char*)object) - object->handlers->offset; in zend_objects_store_del()
195 GC_REMOVE_FROM_BUFFER(object); in zend_objects_store_del()
200 GC_REFCOUNT(object)--; in zend_objects_store_del()