1 #ifndef RUBY_TRANSIENT_HEAP_H
2 #define RUBY_TRANSIENT_HEAP_H
13 #if USE_TRANSIENT_HEAP
21 void *rb_transient_heap_alloc(
VALUE obj,
size_t req_size);
26 void rb_transient_heap_mark(
VALUE obj,
const void *
ptr);
29 void rb_transient_heap_promote(
VALUE obj);
30 void rb_transient_heap_start_marking(
int full_marking);
31 void rb_transient_heap_finish_marking(
void);
32 void rb_transient_heap_update_references(
void);
35 void rb_transient_heap_evacuate(
void);
38 void rb_transient_heap_dump(
void);
39 void rb_transient_heap_verify(
void);
40 int rb_transient_heap_managed_ptr_p(
const void *
ptr);
43 void rb_ary_transient_heap_evacuate(
VALUE ary,
int promote);
44 void rb_obj_transient_heap_evacuate(
VALUE obj,
int promote);
45 void rb_struct_transient_heap_evacuate(
VALUE st,
int promote);
49 #define rb_transient_heap_alloc(o, s) NULL
50 #define rb_transient_heap_verify() ((void)0)
51 #define rb_transient_heap_promote(obj) ((void)0)
52 #define rb_transient_heap_start_marking(full_marking) ((void)0)
53 #define rb_transient_heap_update_references() ((void)0)
54 #define rb_transient_heap_evacuate() ((void)0)
55 #define rb_transient_heap_finish_marking() ((void)0)
56 #define rb_transient_heap_mark(obj, ptr) ((void)0)
58 #define rb_ary_transient_heap_evacuate(x, y) ((void)0)
59 #define rb_obj_transient_heap_evacuate(x, y) ((void)0)
60 #define rb_struct_transient_heap_evacuate(x, y) ((void)0)
char * ptr
Pointer to the underlying memory region, of at least capa bytes.
uintptr_t VALUE
Type that represents a Ruby object.