Differences From
Artifact [b22d9ec405]:
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 );