|
Minishell 1.0
42 School Minishell Project - A simple shell implementation
|
Arena-based garbage collector — core fonksiyonlar. Ayrıntılar...
Bu dosyanın kaynak koduna git.
Fonksiyonlar | |
| void | gc_init (t_gc *gc) |
| GC yapısını ilk duruma getirir. | |
| static t_gc_node * | gc_add_node (t_gc *gc, void *ptr) |
| Yeni bir gc_node oluşturup ptr'yi kaydeder. | |
| void * | gc_alloc (t_gc *gc, size_t size) |
| malloc + GC'ye kayıt — free gerekmez | |
| void * | gc_calloc (t_gc *gc, size_t nmemb, size_t size) |
| ft_calloc + GC'ye kayıt — sıfırlanmış bellek, free gerekmez | |
| void * | gc_register (t_gc *gc, void *ptr) |
| Mevcut bir pointer'ı GC'ye kaydeder (dışarıda malloc edilmiş). | |
| void | gc_free_all (t_gc *gc) |
| GC'deki tüm kayıtlı pointer'ları serbest bırakır. | |
Arena-based garbage collector — core fonksiyonlar.
Linked-list tabanlı basit bir GC. Her allocation gc_node olarak listeye eklenir, gc_free_all ile hepsi toplu serbest bırakılır.
garbage_collector.c dosyasında tanımlanmıştır.
| void gc_init | ( | t_gc * | gc | ) |
GC yapısını ilk duruma getirir.
| gc | GC yapısı pointer'ı |
garbage_collector.c dosyasının 30 numaralı satırında tanımlanmıştır.
Referanslar s_gc::head.
Yeni bir gc_node oluşturup ptr'yi kaydeder.
| gc | GC yapısı pointer'ı |
| ptr | Kaydedilecek pointer |
garbage_collector.c dosyasının 41 numaralı satırında tanımlanmıştır.
Referanslar s_gc::head, s_gc_node::next ve s_gc_node::ptr.
Referans veren gc_alloc(), gc_calloc() ve gc_register().
| void * gc_alloc | ( | t_gc * | gc, |
| size_t | size ) |
malloc + GC'ye kayıt — free gerekmez
| gc | GC yapısı pointer'ı |
| size | Ayrılacak byte sayısı |
garbage_collector.c dosyasının 65 numaralı satırında tanımlanmıştır.
Referanslar gc_add_node().
| void * gc_calloc | ( | t_gc * | gc, |
| size_t | nmemb, | ||
| size_t | size ) |
ft_calloc + GC'ye kayıt — sıfırlanmış bellek, free gerekmez
| gc | GC yapısı pointer'ı |
| nmemb | Eleman sayısı |
| size | Her elemanın byte boyutu |
garbage_collector.c dosyasının 86 numaralı satırında tanımlanmıştır.
Referanslar gc_add_node().
| void * gc_register | ( | t_gc * | gc, |
| void * | ptr ) |
Mevcut bir pointer'ı GC'ye kaydeder (dışarıda malloc edilmiş).
| gc | GC yapısı pointer'ı |
| ptr | Kaydedilecek pointer |
garbage_collector.c dosyasının 104 numaralı satırında tanımlanmıştır.
Referanslar gc_add_node().
Referans veren gc_itoa(), gc_split(), gc_strdup(), gc_strjoin() ve gc_substr().
| void gc_free_all | ( | t_gc * | gc | ) |
GC'deki tüm kayıtlı pointer'ları serbest bırakır.
| gc | GC yapısı pointer'ı |
Tüm node'ları ve içlerindeki ptr'leri free'ler. Çağrıdan sonra gc tekrar kullanılabilir (head = NULL).
garbage_collector.c dosyasının 120 numaralı satırında tanımlanmıştır.
Referanslar s_gc::head, s_gc_node::next ve s_gc_node::ptr.