60void gc_bench_print(
void);
74size_t zend_gc_globals_size(
void);
77#define GC_REMOVE_FROM_BUFFER(p) do { \
78 zend_refcounted *_p = (zend_refcounted*)(p); \
79 if (GC_TYPE_INFO(_p) & GC_INFO_MASK) { \
80 gc_remove_from_buffer(_p); \
84#define GC_MAY_LEAK(ref) \
85 ((GC_TYPE_INFO(ref) & \
86 (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT))) == 0)
155 *table = gc_buffer->
start;
zend_hrtime_t collector_time
zend_hrtime_t application_time
ZEND_API void(ZEND_FASTCALL *zend_touch_vm_stack_data)(void *vm_stack_data)
ZEND_API int(* gc_collect_cycles)(void)
ZEND_API void ZEND_FASTCALL gc_remove_from_buffer(zend_refcounted *ref)
ZEND_API void zend_get_gc_buffer_grow(zend_get_gc_buffer *gc_buffer)
void gc_globals_dtor(void)
void gc_globals_ctor(void)
ZEND_API bool gc_protect(bool protect)
struct _zend_gc_status zend_gc_status
ZEND_API void zend_gc_get_status(zend_gc_status *status)
ZEND_API bool gc_enabled(void)
ZEND_API zend_get_gc_buffer * zend_get_gc_buffer_create(void)
ZEND_API int zend_gc_collect_cycles(void)
ZEND_API void ZEND_FASTCALL gc_possible_root(zend_refcounted *ref)
ZEND_API bool gc_protected(void)
#define EXPECTED(condition)
#define zend_always_inline
#define UNEXPECTED(condition)
struct _zend_object zend_object
#define Z_REFCOUNTED_P(zval_p)
#define Z_COUNTED_P(zval_p)
#define Z_COLLECTABLE_P(zval_p)
struct _zend_refcounted zend_refcounted
#define ZVAL_COPY_VALUE(z, v)
struct _zend_reference zend_reference