php-internal-docs 8.4.8
Unofficial docs for php/php-src
Loading...
Searching...
No Matches
zend_objects_API.h File Reference
#include "zend_types.h"
#include "zend_gc.h"
#include "zend_alloc.h"
#include "zend_compile.h"

Go to the source code of this file.

Data Structures

struct  _zend_objects_store
 

Macros

#define OBJ_BUCKET_INVALID   (1<<0)
 
#define IS_OBJ_VALID(o)
 
#define SET_OBJ_INVALID(o)
 
#define GET_OBJ_BUCKET_NUMBER(o)
 
#define SET_OBJ_BUCKET_NUMBER(o, n)
 
#define ZEND_OBJECTS_STORE_ADD_TO_FREE_LIST(h)
 
#define OBJ_RELEASE(obj)
 

Typedefs

typedef struct _zend_objects_store zend_objects_store
 

Functions

ZEND_API void ZEND_FASTCALL zend_objects_store_init (zend_objects_store *objects, uint32_t init_size)
 
ZEND_API void ZEND_FASTCALL zend_objects_store_call_destructors (zend_objects_store *objects)
 
ZEND_API void ZEND_FASTCALL zend_objects_store_mark_destructed (zend_objects_store *objects)
 
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_destroy (zend_objects_store *objects)
 
ZEND_API void ZEND_FASTCALL zend_objects_store_put (zend_object *object)
 
ZEND_API void ZEND_FASTCALL zend_objects_store_del (zend_object *object)
 
ZEND_API ZEND_COLD zend_property_infozend_get_property_info_for_slot_slow (zend_object *obj, zval *slot)
 

Macro Definition Documentation

◆ GET_OBJ_BUCKET_NUMBER

#define GET_OBJ_BUCKET_NUMBER ( o)
Value:
(((intptr_t)(o)) >> 1)

Definition at line 34 of file zend_objects_API.h.

◆ IS_OBJ_VALID

#define IS_OBJ_VALID ( o)
Value:
(!(((uintptr_t)(o)) & OBJ_BUCKET_INVALID))
#define OBJ_BUCKET_INVALID

Definition at line 30 of file zend_objects_API.h.

◆ OBJ_BUCKET_INVALID

#define OBJ_BUCKET_INVALID   (1<<0)

Definition at line 28 of file zend_objects_API.h.

◆ OBJ_RELEASE

#define OBJ_RELEASE ( obj)
Value:
zend_object_release(obj)

Definition at line 45 of file zend_objects_API.h.

◆ SET_OBJ_BUCKET_NUMBER

#define SET_OBJ_BUCKET_NUMBER ( o,
n )
Value:
do { \
(o) = (zend_object*)((((uintptr_t)(n)) << 1) | OBJ_BUCKET_INVALID); \
} while (0)
zend_long n
Definition ffi.c:4979
struct _zend_object zend_object

Definition at line 36 of file zend_objects_API.h.

◆ SET_OBJ_INVALID

#define SET_OBJ_INVALID ( o)
Value:
((zend_object*)((((uintptr_t)(o)) | OBJ_BUCKET_INVALID)))

Definition at line 32 of file zend_objects_API.h.

◆ ZEND_OBJECTS_STORE_ADD_TO_FREE_LIST

#define ZEND_OBJECTS_STORE_ADD_TO_FREE_LIST ( h)
Value:
do { \
SET_OBJ_BUCKET_NUMBER(EG(objects_store).object_buckets[(h)], EG(objects_store).free_list_head); \
EG(objects_store).free_list_head = (h); \
} while (0)
#define EG(v)

Definition at line 40 of file zend_objects_API.h.

Typedef Documentation

◆ zend_objects_store

Function Documentation

◆ zend_get_property_info_for_slot_slow()

ZEND_API ZEND_COLD zend_property_info * zend_get_property_info_for_slot_slow ( zend_object * obj,
zval * slot )

Definition at line 204 of file zend_objects_API.c.

◆ zend_objects_store_call_destructors()

ZEND_API void ZEND_FASTCALL zend_objects_store_call_destructors ( zend_objects_store * objects)

Definition at line 43 of file zend_objects_API.c.

◆ zend_objects_store_del()

ZEND_API void ZEND_FASTCALL zend_objects_store_del ( zend_object * object)

Definition at line 160 of file zend_objects_API.c.

◆ zend_objects_store_destroy()

ZEND_API void ZEND_FASTCALL zend_objects_store_destroy ( zend_objects_store * objects)

Definition at line 37 of file zend_objects_API.c.

◆ zend_objects_store_free_object_storage()

ZEND_API void ZEND_FASTCALL zend_objects_store_free_object_storage ( zend_objects_store * objects,
bool fast_shutdown )

Definition at line 83 of file zend_objects_API.c.

◆ zend_objects_store_init()

ZEND_API void ZEND_FASTCALL zend_objects_store_init ( zend_objects_store * objects,
uint32_t init_size )

Definition at line 28 of file zend_objects_API.c.

◆ zend_objects_store_mark_destructed()

ZEND_API void ZEND_FASTCALL zend_objects_store_mark_destructed ( zend_objects_store * objects)

Definition at line 66 of file zend_objects_API.c.

◆ zend_objects_store_put()

ZEND_API void ZEND_FASTCALL zend_objects_store_put ( zend_object * object)

Definition at line 140 of file zend_objects_API.c.