13#ifndef SEEN_INKSCAPE_GC_CORE_H
14#define SEEN_INKSCAPE_GC_CORE_H
42 void *(*malloc)(std::size_t
size);
43 void *(*malloc_atomic)(std::size_t
size);
44 void *(*malloc_uncollectable)(std::size_t
size);
45 void *(*malloc_atomic_uncollectable)(std::size_t
size);
46 void *(*base)(
void *ptr);
77 static inline void *
base(
void *ptr) {
112 static inline void free(
void *ptr) {
128inline void *
operator new(std::size_t
size,
137 if ( collect == AUTO ) {
138 if ( scan == SCANNED ) {
139 mem = Core::malloc(
size);
141 mem = Core::malloc_atomic(
size);
144 if ( scan == SCANNED ) {
145 mem = Core::malloc_uncollectable(
size);
147 mem = Core::malloc_atomic_uncollectable(
size);
151 throw std::bad_alloc();
154 Core::register_finalizer_ignore_self(mem, cleanup,
data,
nullptr,
nullptr);
159inline void *
operator new(std::size_t
size,
167inline void *
operator new[](std::size_t
size,
173 return operator new(
size, scan, collect, cleanup,
data);
176inline void *
operator new[](std::size_t
size,
Boehm-GC based garbage collector.
void(* CleanupFunc)(void *mem, void *data)
void request_early_collection()
Helper class to stream background task notifications as a series of messages.
static std::size_t get_free_bytes()
static int unregister_disappearing_link(void **p_ptr)
static void * base(void *ptr)
static void * malloc_uncollectable(std::size_t size)
static int general_register_disappearing_link(void **p_ptr, void *base)
static std::size_t get_heap_size()
static void * malloc(std::size_t size)
static void * malloc_atomic_uncollectable(std::size_t size)
static void register_finalizer_ignore_self(void *base, CleanupFunc func, void *data, CleanupFunc *old_func, void **old_data)
static void free(void *ptr)
static void * malloc_atomic(std::size_t size)
int(* general_register_disappearing_link)(void **p_ptr, void const *base)
void *(* malloc)(std::size_t size)
std::size_t(* get_free_bytes)()
int(* unregister_disappearing_link)(void **p_ptr)
void *(* malloc_atomic)(std::size_t size)
void(* register_finalizer_ignore_self)(void *base, CleanupFunc func, void *data, CleanupFunc *old_func, void **old_data)
std::size_t(* get_heap_size)()
void *(* base)(void *ptr)
void *(* malloc_atomic_uncollectable)(std::size_t size)
void *(* malloc_uncollectable)(std::size_t size)