32 objects->
size = init_size;
46 if (objects->
top > 1) {
48 for (i = 1; i < objects->
top; i++) {
79 }
while (obj_ptr !=
end);
87 if (objects->
top <= 1) {
109 }
while (obj_ptr !=
end);
121 }
while (obj_ptr !=
end);
130 uint32_t new_size = 2 *
EG(objects_store).size;
134 EG(objects_store).size = new_size;
148 handle =
EG(objects_store).free_list_head;
151 zend_objects_store_put_cold(
object);
177 ||
object->ce->destructor) {
179 object->handlers->dtor_obj(
object);
185 uint32_t
handle =
object->handle;
194 object->handlers->free_obj(
object);
196 ptr = ((
char*)
object) -
object->handlers->offset;
memset(ptr, 0, type->size)
unsigned const char * end
HashTable properties_info
zend_function * destructor
zend_object_dtor_obj_t dtor_obj
zend_object_free_obj_t free_obj
const zend_object_handlers * handlers
zend_object ** object_buckets
#define erealloc(ptr, size)
struct _zend_property_info zend_property_info
#define OBJ_PROP_SLOT_TO_OFFSET(obj, slot)
#define GC_REMOVE_FROM_BUFFER(p)
#define EG_FLAGS_OBJECT_STORE_NO_REUSE
#define ZEND_HASH_MAP_FOREACH_PTR(ht, _ptr)
#define ZEND_HASH_FOREACH_END()
ZEND_API void zend_objects_destroy_object(zend_object *object)
ZEND_API void zend_object_std_dtor(zend_object *object)
ZEND_API void ZEND_FASTCALL zend_objects_store_destroy(zend_objects_store *objects)
ZEND_API void ZEND_FASTCALL zend_objects_store_del(zend_object *object)
ZEND_API ZEND_COLD zend_property_info * zend_get_property_info_for_slot_slow(zend_object *obj, zval *slot)
ZEND_API void ZEND_FASTCALL zend_objects_store_put(zend_object *object)
ZEND_API void ZEND_FASTCALL zend_objects_store_free_object_storage(zend_objects_store *objects, bool fast_shutdown)
ZEND_API void ZEND_FASTCALL zend_objects_store_mark_destructed(zend_objects_store *objects)
ZEND_API void ZEND_FASTCALL zend_objects_store_call_destructors(zend_objects_store *objects)
ZEND_API void ZEND_FASTCALL zend_objects_store_init(zend_objects_store *objects, uint32_t init_size)
#define SET_OBJ_INVALID(o)
struct _zend_objects_store zend_objects_store
#define ZEND_OBJECTS_STORE_ADD_TO_FREE_LIST(h)
#define GET_OBJ_BUCKET_NUMBER(o)
#define zend_never_inline
#define EXPECTED(condition)
#define UNEXPECTED(condition)
struct _zend_object zend_object
#define GC_SET_REFCOUNT(p, rc)
#define IS_OBJ_FREE_CALLED
#define IS_OBJ_DESTRUCTOR_CALLED
#define GC_ADD_FLAGS(p, flags)
zend_property_info * prop_info