Changes in / [a6dd5b0:9c98156]


Ignore:
Location:
src/examples/gc_no_raii
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • src/examples/gc_no_raii/src/gc.h

    ra6dd5b0 r9c98156  
    77static inline gcpointer(T) gcmalloc()
    88{
    9     gcpointer(T) ptr;
    10     void* address = gc_allocate(sizeof(T));
    11     (&ptr){ address };
    12     ctor(&ptr, address);
     9    gcpointer(T) ptr = { gc_allocate(sizeof(T)) };
     10    ptr{};
    1311    gc_conditional_collect();
    1412    return ptr;
    1513}
     14
     15forall(otype T)
     16static inline void gcmalloc(gcpointer(T)* ptr)
     17{
     18        ptr{ gc_allocate(sizeof(T)) };
     19      (*ptr){};
     20      gc_conditional_collect();
     21}
  • src/examples/gc_no_raii/test/gctest.c

    ra6dd5b0 r9c98156  
    88        sout | "Bonjour au monde!\n";
    99
    10         gcpointer(int) anInt = gcmalloc();
     10        for(int i = 0; i < 1000000; i++) {
     11                gcpointer(int) anInt;
     12                gcmalloc(&anInt);
     13        }
    1114}
Note: See TracChangeset for help on using the changeset viewer.