First-Class-Heaps, die auf einmal zerstört werden können. Mehr...
Typedefs | |
| typedef struct mi_heap_s | mi_heap_t |
| Typ von First-Class-Heaps. | |
Funktionen | |
| mi_heap_t * | mi_heap_new () |
| Erstellt einen neuen Heap, der für die Allokation verwendet werden kann. | |
| void | mi_heap_delete (mi_heap_t *heap) |
| Löscht einen zuvor allokierten Heap. | |
| void | mi_heap_destroy (mi_heap_t *heap) |
| Zerstört einen Heap und gibt alle noch allokierten Blöcke frei. | |
| mi_heap_t * | mi_heap_set_default (mi_heap_t *heap) |
| Setzt den Standard-Heap, der im aktuellen Thread für mi_malloc() usw. verwendet werden soll. | |
| mi_heap_t * | mi_heap_get_default () |
| Holt den Standard-Heap, der für mi_malloc() usw. verwendet wird. | |
| mi_heap_t * | mi_heap_get_backing () |
| Holt den zugrundeliegenden Heap. | |
| void | mi_heap_collect (mi_heap_t *heap, bool force) |
| Gibt ausstehende Ressourcen in einem bestimmten Heap frei. | |
| void * | mi_heap_malloc (mi_heap_t *heap, size_t size) |
| Allokiert in einem bestimmten Heap. | |
| void * | mi_heap_malloc_small (mi_heap_t *heap, size_t size) |
| Allokiert ein kleines Objekt in einem bestimmten Heap. | |
| void * | mi_heap_zalloc (mi_heap_t *heap, size_t size) |
| Allokiert null-initialisierte Daten in einem bestimmten Heap. | |
| void * | mi_heap_calloc (mi_heap_t *heap, size_t count, size_t size) |
| Allokiert count null-initialisierte Elemente in einem bestimmten Heap. | |
| void * | mi_heap_mallocn (mi_heap_t *heap, size_t count, size_t size) |
| Allokiert count Elemente in einem bestimmten Heap. | |
| char * | mi_heap_strdup (mi_heap_t *heap, const char *s) |
| Dupliziert einen String in einem bestimmten Heap. | |
| char * | mi_heap_strndup (mi_heap_t *heap, const char *s, size_t n) |
| Dupliziert einen String von maximaler Länge n in einem bestimmten Heap. | |
| char * | mi_heap_realpath (mi_heap_t *heap, const char *fname, char *resolved_name) |
| Löst einen Dateinamen auf und verwendet den angegebenen heap, um das Ergebnis zu allokieren. | |
| void * | mi_heap_realloc (mi_heap_t *heap, void *p, size_t newsize) |
| void * | mi_heap_reallocn (mi_heap_t *heap, void *p, size_t count, size_t size) |
| void * | mi_heap_reallocf (mi_heap_t *heap, void *p, size_t newsize) |
| void * | mi_heap_malloc_aligned (mi_heap_t *heap, size_t size, size_t alignment) |
| void * | mi_heap_malloc_aligned_at (mi_heap_t *heap, size_t size, size_t alignment, size_t offset) |
| void * | mi_heap_zalloc_aligned (mi_heap_t *heap, size_t size, size_t alignment) |
| void * | mi_heap_zalloc_aligned_at (mi_heap_t *heap, size_t size, size_t alignment, size_t offset) |
| void * | mi_heap_calloc_aligned (mi_heap_t *heap, size_t count, size_t size, size_t alignment) |
| void * | mi_heap_calloc_aligned_at (mi_heap_t *heap, size_t count, size_t size, size_t alignment, size_t offset) |
| void * | mi_heap_realloc_aligned (mi_heap_t *heap, void *p, size_t newsize, size_t alignment) |
| void * | mi_heap_realloc_aligned_at (mi_heap_t *heap, void *p, size_t newsize, size_t alignment, size_t offset) |
First-Class-Heaps, die auf einmal zerstört werden können.
| typedef struct mi_heap_s mi_heap_t |
Typ von First-Class-Heaps.
Ein Heap kann nur für (Re)Allokationen im Thread verwendet werden, der diesen Heap erstellt hat! Alle allokierten Blöcke können jedoch von jedem anderen Thread freigegeben werden.
| void * mi_heap_calloc | ( | mi_heap_t * | heap, |
| size_t | count, | ||
| size_t | size ) |
Allokiert count null-initialisierte Elemente in einem bestimmten Heap.
| void * mi_heap_calloc_aligned | ( | mi_heap_t * | heap, |
| size_t | count, | ||
| size_t | size, | ||
| size_t | alignment ) |
| void * mi_heap_calloc_aligned_at | ( | mi_heap_t * | heap, |
| size_t | count, | ||
| size_t | size, | ||
| size_t | alignment, | ||
| size_t | offset ) |
| void mi_heap_collect | ( | mi_heap_t * | heap, |
| bool | force ) |
Gibt ausstehende Ressourcen in einem bestimmten Heap frei.
| void mi_heap_delete | ( | mi_heap_t * | heap | ) |
Löscht einen zuvor allokierten Heap.
Dies gibt Ressourcen frei und migriert alle noch allokierten Blöcke in diesem Heap (effizient) in den Standard-Heap.
Wenn heap der Standard-Heap ist, wird der Standard-Heap auf den zugrundeliegenden Heap gesetzt.
| void mi_heap_destroy | ( | mi_heap_t * | heap | ) |
Zerstört einen Heap und gibt alle noch allokierten Blöcke frei.
Vorsicht bei der Verwendung, da dies alle noch im Heap allokierten Blöcke freigibt. Dies kann jedoch eine sehr effiziente Methode sein, den gesamten Heap-Speicher auf einmal freizugeben.
Wenn heap der Standard-Heap ist, wird der Standard-Heap auf den zugrundeliegenden Heap gesetzt.
| mi_heap_t * mi_heap_get_backing | ( | ) |
Holt den zugrundeliegenden Heap.
Der *zugrundeliegende* Heap ist der anfängliche Standard-Heap für einen Thread und immer für Allokationen verfügbar. Er kann nicht zerstört oder gelöscht werden, außer durch Beenden des Threads.
| mi_heap_t * mi_heap_get_default | ( | ) |
Holt den Standard-Heap, der für mi_malloc() usw. verwendet wird.
(für den aktuellen Thread).
| void * mi_heap_malloc | ( | mi_heap_t * | heap, |
| size_t | size ) |
Allokiert in einem bestimmten Heap.
| void * mi_heap_malloc_aligned | ( | mi_heap_t * | heap, |
| size_t | size, | ||
| size_t | alignment ) |
| void * mi_heap_malloc_aligned_at | ( | mi_heap_t * | heap, |
| size_t | size, | ||
| size_t | alignment, | ||
| size_t | offset ) |
| void * mi_heap_malloc_small | ( | mi_heap_t * | heap, |
| size_t | size ) |
Allokiert ein kleines Objekt in einem bestimmten Heap.
size muss kleiner oder gleich MI_SMALL_SIZE_MAX() sein.
| void * mi_heap_mallocn | ( | mi_heap_t * | heap, |
| size_t | count, | ||
| size_t | size ) |
Allokiert count Elemente in einem bestimmten Heap.
| mi_heap_t * mi_heap_new | ( | ) |
Erstellt einen neuen Heap, der für die Allokation verwendet werden kann.
| void * mi_heap_realloc | ( | mi_heap_t * | heap, |
| void * | p, | ||
| size_t | newsize ) |
| void * mi_heap_realloc_aligned | ( | mi_heap_t * | heap, |
| void * | p, | ||
| size_t | newsize, | ||
| size_t | alignment ) |
| void * mi_heap_realloc_aligned_at | ( | mi_heap_t * | heap, |
| void * | p, | ||
| size_t | newsize, | ||
| size_t | alignment, | ||
| size_t | offset ) |
| void * mi_heap_reallocf | ( | mi_heap_t * | heap, |
| void * | p, | ||
| size_t | newsize ) |
| void * mi_heap_reallocn | ( | mi_heap_t * | heap, |
| void * | p, | ||
| size_t | count, | ||
| size_t | size ) |
| char * mi_heap_realpath | ( | mi_heap_t * | heap, |
| const char * | fname, | ||
| char * | resolved_name ) |
Löst einen Dateinamen auf und verwendet den angegebenen heap, um das Ergebnis zu allokieren.
Setzt den Standard-Heap, der im aktuellen Thread für mi_malloc() usw. verwendet werden soll.
| heap | Der neue Standard-Heap. |
| char * mi_heap_strdup | ( | mi_heap_t * | heap, |
| const char * | s ) |
Dupliziert einen String in einem bestimmten Heap.
| char * mi_heap_strndup | ( | mi_heap_t * | heap, |
| const char * | s, | ||
| size_t | n ) |
Dupliziert einen String von maximaler Länge n in einem bestimmten Heap.
| void * mi_heap_zalloc | ( | mi_heap_t * | heap, |
| size_t | size ) |
Allokiert null-initialisierte Daten in einem bestimmten Heap.
| void * mi_heap_zalloc_aligned | ( | mi_heap_t * | heap, |
| size_t | size, | ||
| size_t | alignment ) |
| void * mi_heap_zalloc_aligned_at | ( | mi_heap_t * | heap, |
| size_t | size, | ||
| size_t | alignment, | ||
| size_t | offset ) |