gdjn  Diff

Differences From Artifact [b22d9ec405]:

To Artifact [a8262d25e1]:


    17     17   #define _warn(msg) _emit(warn, msg)
    18     18   #define _err(msg)  _emit(err, msg)
    19     19   
    20     20   typedef GDExtensionBool gdBool;
    21     21   
    22     22   #define _alloc(ty, n) \
    23     23   	((typeof(ty)*)gdjn_alloc(sizeof(ty) * (n)))
           24  +#define _realloc(v, ty, n) \
           25  +	((typeof(ty)*)gdjn_realloc((v), sizeof(ty) * (n)))
    24     26   #define _free(v) \
    25     27   	(gdjn_ctx -> gd.free(v))
    26     28   #define _sz(r) ((sizeof(r) / sizeof(*r)))
    27     29   
    28     30   #define _t(T) \
    29     31   	(gdjn_ctx -> gd.t.gd_##T)
    30     32   #define _method(name) \
................................................................................
    60     62   
    61     63   		GDExtensionObjectPtr
    62     64   			janetLang_inst,
    63     65   			janetLoader_inst,
    64     66   			janetSaver_inst;
    65     67   	} gd;
    66     68   	struct gdjn_jn {
    67         -		Janet env;
           69  +		JanetTable* api;
    68     70   	} jn;
    69     71   } gdjn;
    70     72   
    71     73   extern gdjn* gdjn_ctx;
    72     74   
    73     75   [[gnu::alloc_size(1)]] static inline
    74     76   void* gdjn_alloc(size_t sz) {
    75     77   	return gdjn_ctx -> gd.alloc(sz);
    76     78   }
           79  +[[gnu::alloc_size(2)]] static inline
           80  +void* gdjn_realloc(void* v, size_t sz) {
           81  +	return gdjn_ctx -> gd.realloc(v, sz);
           82  +}
    77     83   
    78     84   
    79     85   typedef struct gdjn_gd gdjn_gd; // derp
    80     86   typedef struct gdjn_jn gdjn_jn;
    81     87   
    82     88   typedef struct gdjn_class_def gdjn_class_def;
    83     89   
    84     90   void
    85     91   gdjn_dox
    86     92   (	gd_dictionary* page
    87     93   );