Vuo  2.0.0
VuoHeap.h
Go to the documentation of this file.
1 
10 #pragma once
11 
12 #include <stdlib.h>
13 #include <stdbool.h>
14 
15 #ifdef __cplusplus
16 extern "C" {
17 #endif
18 
30 typedef void (*DeallocateFunctionType)(void *);
31 
32 void VuoHeap_report(void);
33 
45 #define VuoRegister(heapPointer, deallocate) VuoRegisterF(heapPointer, deallocate, __FILE__, __LINE__, __func__, #heapPointer)
46 int VuoRegisterF(const void *heapPointer, DeallocateFunctionType deallocate, const char *file, unsigned int linenumber, const char *func, const char *pointerName);
47 
58 #define VuoRegisterSingleton(heapPointer) VuoRegisterSingletonF(heapPointer, __FILE__, __LINE__, __func__, #heapPointer)
59 int VuoRegisterSingletonF(const void *heapPointer, const char *file, unsigned int linenumber, const char *func, const char *pointerName);
60 
61 int VuoRetain(const void *heapPointer);
62 
63 int VuoRelease(const void *heapPointer);
64 
106 #define VuoLocal(heapPointer) VuoRetain(heapPointer); VuoDefer(^{VuoRelease(heapPointer);});
107 
108 bool VuoHeap_isPointerReadable(const void *pointer);
109 const char * VuoHeap_getDescription(const void *heapPointer);
110 void VuoHeap_addTrace(const void *heapPointer);
111 
118 #define VuoWarnUnusedResult __attribute__((warn_unused_result))
119 
126 #define VuoIgnoreResult(a) (void)a
127 
128 #ifdef __cplusplus
129 }
130 #endif