diff --git a/src/core.h b/src/core.h index e17e310f..60833f69 100644 --- a/src/core.h +++ b/src/core.h @@ -32,6 +32,7 @@ typedef struct BFn { struct Fun; + u8 nid; B ident; FC2 uc1; BBBB2B ucw; @@ -41,6 +42,7 @@ typedef struct BFn { } BFn; typedef struct BMd1 { struct Md1; + u8 nid; D1C1 im; D1C2 iw; D1C2 ix; @@ -48,6 +50,7 @@ typedef struct BMd1 { typedef struct BMd2 { struct Md2; + u8 nid; D2C1 im; D2C2 iw; D2C2 ix; diff --git a/src/h.h b/src/h.h index 47c6ce16..01eea32d 100644 --- a/src/h.h +++ b/src/h.h @@ -427,7 +427,7 @@ void freeThrown(void); #define RTID_NONE -1 #define PRTID(X) ((X)->flags-1) #define RTID(X) PRTID(v(X)) -#define NID(X) ((X)->extra) +#define NID(X) ((X)->nid) #define VTY(X,T) assert(isVal(X) && TY(X)==(T)) diff --git a/src/load.c b/src/load.c index 78b4fae3..9ad12e37 100644 --- a/src/load.c +++ b/src/load.c @@ -757,11 +757,11 @@ void def_fallbackTriv(Value* v) { // used while vtables aren't yet fully loaded; TIv(v,freeF)(v); } -static NOINLINE B m_bfn(FC1 c1, FC2 c2, u8 id) { +static NOINLINE B m_bfn(FC1 c1, FC2 c2, u8 nid) { BFn* f = mm_alloc(sizeof(BFn), t_funBI); f->c1 = c1; f->c2 = c2; - f->extra = id; + f->nid = nid; f->ident = bi_N; f->uc1 = def_fn_uc1; f->ucw = def_fn_ucw; @@ -774,11 +774,11 @@ static NOINLINE B m_bfn(FC1 c1, FC2 c2, u8 id) { B r = tag(f,FUN_TAG); gc_add(r); return r; } -static NOINLINE B m_bm1(D1C1 c1, D1C2 c2, u8 id) { +static NOINLINE B m_bm1(D1C1 c1, D1C2 c2, u8 nid) { BMd1* m = mm_alloc(sizeof(BMd1), t_md1BI); m->c1 = c1; m->c2 = c2; - m->extra = id; + m->nid = nid; m->im = def_m1_im; m->iw = def_m1_iw; m->ix = def_m1_ix; @@ -786,11 +786,11 @@ static NOINLINE B m_bm1(D1C1 c1, D1C2 c2, u8 id) { return r; } -static NOINLINE B m_bm2(D2C1 c1, D2C2 c2, u8 id) { +static NOINLINE B m_bm2(D2C1 c1, D2C2 c2, u8 nid) { BMd2* m = mm_alloc(sizeof(BMd2), t_md2BI); m->c1 = c1; m->c2 = c2; - m->extra = id; + m->nid = nid; m->im = def_m2_im; m->iw = def_m2_iw; m->ix = def_m2_ix;