From 4cf8e10b950707f1e5bc52a8a6223f3e44a65afb Mon Sep 17 00:00:00 2001 From: dzaima Date: Mon, 9 Sep 2024 17:26:37 +0300 Subject: [PATCH] =?UTF-8?q?fillarr=5Fptr=20=E2=86=92=20fillarrv=5Fptr?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/builtins/fns.c | 2 +- src/builtins/group.c | 6 +++--- src/builtins/internal.c | 4 ++-- src/builtins/select.c | 2 +- src/builtins/sfns.c | 12 ++++++------ src/core/arrFns.h | 8 ++++---- src/core/fillarr.c | 2 +- src/core/fillarr.h | 5 +++-- src/utils/each.c | 2 +- src/utils/mut.c | 2 +- src/utils/mut.h | 2 +- 11 files changed, 24 insertions(+), 23 deletions(-) diff --git a/src/builtins/fns.c b/src/builtins/fns.c index d96dfa0b..8f8ebe31 100644 --- a/src/builtins/fns.c +++ b/src/builtins/fns.c @@ -82,7 +82,7 @@ NOINLINE B list_range(B x) { if (rsh) shcpy(rsh, sh, xia); if (ria) { - B* rp = fillarr_ptr(r); + B* rp = fillarrv_ptr(r); ud_rec(rp, 0, xia, pos, sh); fillarr_setFill(r, incG(rp[0])); } else { diff --git a/src/builtins/group.c b/src/builtins/group.c index 96c6ab48..5d462865 100644 --- a/src/builtins/group.c +++ b/src/builtins/group.c @@ -81,7 +81,7 @@ static B group_simple(B w, B x, ur xr, usz wia, usz xn, usz* xsh, u8 we) { if (ria > (i64)(USZ_MAX)) thrOOM(); Arr* r = m_fillarr0p(ria); - B* rp = fillarr_ptr(r); + B* rp = fillarrv_ptr(r); B xf = getFillR(x); Arr* rf = emptyWithFill(xf); @@ -237,14 +237,14 @@ static B group_simple(B w, B x, ur xr, usz wia, usz xn, usz* xsh, u8 we) { if (csz == 1) { for (usz i = 0; i < xn; i++) { i32 n = wp[i]; - if (n>=0) fillarr_ptr(a(rp[n]))[pos[n]++] = Get(x, i); + if (n>=0) fillarrv_ptr(a(rp[n]))[pos[n]++] = Get(x, i); } } else { for (usz i = 0; i < xn; i++) { i32 n = wp[i]; if (n<0) continue; usz p = (pos[n]++)*csz; - B* rnp = fillarr_ptr(a(rp[n])) + p; + B* rnp = fillarrv_ptr(a(rp[n])) + p; for (usz j = 0; j < csz; j++) rnp[j] = Get(x, i*csz + j); } } diff --git a/src/builtins/internal.c b/src/builtins/internal.c index fea26301..58d84daf 100644 --- a/src/builtins/internal.c +++ b/src/builtins/internal.c @@ -188,7 +188,7 @@ B variation_c2(B t, B w, B x) { Arr* r = m_fillarrp(xia); fillarr_setFill(r, getFillR(x)); arr_shCopy(r, x); - COPY_TO(fillarr_ptr(r), el_B, 0, x, 0, xia); + COPY_TO(fillarrv_ptr(r), el_B, 0, x, 0, xia); NOGC_E; res = taga(r); @@ -252,7 +252,7 @@ static B unshare(B x) { case t_fillarr: case t_fillslice: { Arr* r = arr_shCopy(m_fillarr0p(xia), x); fillarr_setFill(r, unshare(getFillR(x))); - B* rp = fillarr_ptr(r); + B* rp = fillarrv_ptr(r); B* xp = arr_bptr(x); for (usz i = 0; i < xia; i++) rp[i] = unshare(xp[i]); return unshareShape(r); diff --git a/src/builtins/select.c b/src/builtins/select.c index 6d297c9f..ff2e36af 100644 --- a/src/builtins/select.c +++ b/src/builtins/select.c @@ -156,7 +156,7 @@ B select_c2(B t, B w, B x) { } else { Arr* r = m_fillarrp(1); arr_shAtm(r); - fillarr_ptr(r)[0] = xv; + fillarrv_ptr(r)[0] = xv; fillarr_setFill(r, xf); NOGC_E; rb = taga(r); diff --git a/src/builtins/sfns.c b/src/builtins/sfns.c index 18d85e53..5deac19f 100644 --- a/src/builtins/sfns.c +++ b/src/builtins/sfns.c @@ -46,8 +46,8 @@ FORCE_INLINE B m_vec2Base(B a, B b, bool fills) { dec(bf); Arr* ra = arr_shVec(m_fillarrp(2)); fillarr_setFill(ra, af); - fillarr_ptr(ra)[0] = a; - fillarr_ptr(ra)[1] = b; + fillarrv_ptr(ra)[0] = a; + fillarrv_ptr(ra)[1] = b; NOGC_E; return taga(ra); } @@ -141,8 +141,8 @@ NOINLINE Arr* reshape_one(usz nia, B x) { incBy(x, nia); // in addition with the existing reference, this covers the filled amount & asFill B rf = asFill(x); r = m_fillarrp(nia); - if (sizeof(B)==8) fill_words(fillarr_ptr(r), x.u, (u64)nia*8); - else for (usz i = 0; i < nia; i++) fillarr_ptr(r)[i] = x; + if (sizeof(B)==8) fill_words(fillarrv_ptr(r), x.u, (u64)nia*8); + else for (usz i = 0; i < nia; i++) fillarrv_ptr(r)[i] = x; fillarr_setFill(r, rf); NOGC_E; } @@ -1266,11 +1266,11 @@ static B pick_replaceOne(B fn, usz pos, B x, usz xia) { if (!(TY(x)==t_harr && reusable(x))) x = taga(cpyHArr(x)); xp = harr_ptr(x); } else if (TY(x)==t_fillarr && reusable(x)) { - xp = fillarr_ptr(a(x)); + xp = fillarrv_ptr(a(x)); } else { Arr* x2 = m_fillarrp(xia); fillarr_setFill(x2, getFillR(x)); - xp = fillarr_ptr(x2); + xp = fillarrv_ptr(x2); COPY_TO(xp, el_B, 0, x, 0, xia); NOGC_E; arr_shCopy(x2, x); diff --git a/src/core/arrFns.h b/src/core/arrFns.h index 5ea83e4d..22c7ee19 100644 --- a/src/core/arrFns.h +++ b/src/core/arrFns.h @@ -2,16 +2,16 @@ static B* arr_bptr(B x) { assert(isArr(x)); if (TY(x)==t_harr) return harr_ptr(x); - if (TY(x)==t_fillarr) return fillarr_ptr(a(x)); + if (TY(x)==t_fillarr) return fillarrv_ptr(a(x)); if (TY(x)==t_hslice) return hslice_ptr(x); - if (TY(x)==t_fillslice) return c(FillSlice,x)->a; + if (TY(x)==t_fillslice) return fillslicev_ptr(a(x)); return NULL; } static B* arrV_bptr(Arr* x) { if (PTY(x)==t_harr) return harrv_ptr(x); - if (PTY(x)==t_fillarr) return fillarr_ptr(x); + if (PTY(x)==t_fillarr) return fillarrv_ptr(x); if (PTY(x)==t_hslice) return hslicev_ptr(x); - if (PTY(x)==t_fillslice) return ((FillSlice*)x)->a; + if (PTY(x)==t_fillslice) return fillslicev_ptr(x); return NULL; } diff --git a/src/core/fillarr.c b/src/core/fillarr.c index f302d632..b455aeca 100644 --- a/src/core/fillarr.c +++ b/src/core/fillarr.c @@ -167,7 +167,7 @@ NOINLINE B m_funit(B x) { } NOINLINE B m_fvec1(B x) { Arr* ra = arr_shVec(m_fillarrp(1)); - fillarr_ptr(ra)[0] = x; + fillarrv_ptr(ra)[0] = x; fillarr_setFill(ra, m_f64(0)); NOGC_E; fillarr_setFill(ra, asFill(inc(x))); diff --git a/src/core/fillarr.h b/src/core/fillarr.h index 8683b6ef..726cce6b 100644 --- a/src/core/fillarr.h +++ b/src/core/fillarr.h @@ -83,7 +83,8 @@ static Arr* m_fillarrp(usz ia) { // needs a NOGC_E after fill & all elements are return r; } static void fillarr_setFill(Arr* x, B fill) { assert(PTY(x)==t_fillarr); ((FillArr*)x)->fill = fill; } // consumes fill -static B* fillarr_ptr(Arr* x) { assert(PTY(x)==t_fillarr); return ((FillArr*)x)->a; } +static B* fillarrv_ptr (Arr* x) { assert(PTY(x)==t_fillarr); return ((FillArr*)x)->a; } +static B* fillslicev_ptr(Arr* x) { assert(PTY(x)==t_fillslice); return ((FillSlice*)x)->a; } static Arr* m_fillarrpEmpty(B fill) { Arr* r = m_fillarrp(0); fillarr_setFill(r, fill); @@ -93,7 +94,7 @@ static Arr* m_fillarrpEmpty(B fill) { static Arr* m_fillarr0p(usz ia) { // zero-initialized fillarr, with both fill & elements set to m_f64(0) Arr* r = arr_shVec(m_fillarrp(ia)); fillarr_setFill(r, m_f64(0)); - FILL_TO(fillarr_ptr(r), el_B, 0, m_f64(0), ia); + FILL_TO(fillarrv_ptr(r), el_B, 0, m_f64(0), ia); NOGC_E; return r; } diff --git a/src/utils/each.c b/src/utils/each.c index d701b48c..29be8913 100644 --- a/src/utils/each.c +++ b/src/utils/each.c @@ -72,7 +72,7 @@ B eachm_fn(B fo, B x, FC1 f) { case t_fillarr: { dec(c(FillArr,x)->fill); c(FillArr,x)->fill = bi_noFill; - xp = fillarr_ptr(a(x)); + xp = fillarrv_ptr(a(x)); break; } case t_harr: { diff --git a/src/utils/mut.c b/src/utils/mut.c index b2754b94..9b91a15f 100644 --- a/src/utils/mut.c +++ b/src/utils/mut.c @@ -126,7 +126,7 @@ NOINLINE JoinFillslice fillslice_getJoin(B w, usz ria) { if (p->refc!=1) goto no; if (p->type!=t_fillarr && p->type!=t_harr) goto no; - void* rp = p->type==t_fillarr? fillarr_ptr(p) : harrv_ptr(p); + void* rp = p->type==t_fillarr? fillarrv_ptr(p) : harrv_ptr(p); if (rp != s->a) goto no; if (PIA(p)!=wia) goto no; usz wsz = mm_sizeUsable((Value*)p); diff --git a/src/utils/mut.h b/src/utils/mut.h index ac603317..ff45248f 100644 --- a/src/utils/mut.h +++ b/src/utils/mut.h @@ -187,7 +187,7 @@ FORCE_INLINE B arr_join_inline(B w, B x, bool consume, bool* usedW) { rp = t.rp; goto yes; } - case t_fillarr: if (fsizeof(FillArr,a,B,ria)fill); c(FillArr,w)->fill = bi_noFill; goto yes; } break; + case t_fillarr: if (fsizeof(FillArr,a,B,ria)fill); c(FillArr,w)->fill = bi_noFill; goto yes; } break; case t_harr: if (fsizeof(HArr, a,B,ria)