From daa82942526adf2259a4e0c462b29eddf8a3b93d Mon Sep 17 00:00:00 2001 From: dzaima Date: Sat, 3 Jul 2021 00:37:00 +0300 Subject: [PATCH] return Arr* from m_(i32|c32|f64)arrp --- src/builtins/fns.c | 6 +++--- src/core/c32arr.h | 4 ++-- src/core/f64arr.h | 4 ++-- src/core/fillarr.h | 16 ++++++++-------- src/core/i32arr.h | 4 ++-- src/utils/mut.h | 8 ++++---- 6 files changed, 21 insertions(+), 21 deletions(-) diff --git a/src/builtins/fns.c b/src/builtins/fns.c index 4cb53be4..2986f9cd 100644 --- a/src/builtins/fns.c +++ b/src/builtins/fns.c @@ -233,10 +233,10 @@ B indexOf_c2(B t, B w, B x) { } } dec(w); dec(x); - i32* rp; B r = m_i32arrp(&rp, 1); - arr_shAllocR(r,0); + i32* rp; Arr* r = m_i32arrp(&rp, 1); + arrP_shAllocR(r, 0); rp[0] = res; - return r; + return tag(r, ARR_TAG); } else if (rnk(x)==1) { usz wia = a(w)->ia; usz xia = a(x)->ia; diff --git a/src/core/c32arr.h b/src/core/c32arr.h index 36a6c322..cb4fb618 100644 --- a/src/core/c32arr.h +++ b/src/core/c32arr.h @@ -20,11 +20,11 @@ static B m_c32arrc(u32** p, B x) { assert(isArr(x)); arrP_shCopy((Arr*)r, x); return tag(r, ARR_TAG); } -static B m_c32arrp(u32** p, usz ia) { // doesn't write shape/rank +static Arr* m_c32arrp(u32** p, usz ia) { // doesn't write shape/rank C32Arr* r = mm_alloc(fsizeof(C32Arr,a,u32,ia), t_c32arr); *p = r->a; r->ia = ia; - return tag(r, ARR_TAG); + return (Arr*)r; } B m_str8(usz sz, char* s); diff --git a/src/core/f64arr.h b/src/core/f64arr.h index 0d5d8dd2..62acf6ce 100644 --- a/src/core/f64arr.h +++ b/src/core/f64arr.h @@ -20,11 +20,11 @@ static B m_f64arrc(f64** p, B x) { assert(isArr(x)); arrP_shCopy((Arr*)r, x); return tag(r, ARR_TAG); } -static B m_f64arrp(f64** p, usz ia) { // doesn't write shape/rank +static Arr* m_f64arrp(f64** p, usz ia) { // doesn't write shape/rank F64Arr* r = mm_alloc(fsizeof(F64Arr,a,f64,ia), t_f64arr); *p = r->a; r->ia = ia; - return tag(r, ARR_TAG); + return (Arr*)r; } B m_caf64(usz sz, f64* a); diff --git a/src/core/fillarr.h b/src/core/fillarr.h index 9c8d8ba8..40f02656 100644 --- a/src/core/fillarr.h +++ b/src/core/fillarr.h @@ -93,17 +93,17 @@ static B m_unit(B x) { static B m_atomUnit(B x) { if (isNum(x)) { - B r; - if (q_i32(x)) { i32* rp; r=m_i32arrp(&rp, 1); rp[0] = o2iu(x); } - else { f64* rp; r=m_f64arrp(&rp, 1); rp[0] = o2fu(x); } - arr_shAllocR(r,0); - return r; + Arr* r; + if (q_i32(x)) { i32* rp; r = m_i32arrp(&rp, 1); rp[0] = o2iu(x); } + else { f64* rp; r = m_f64arrp(&rp, 1); rp[0] = o2fu(x); } + arrP_shAllocR(r, 0); + return tag(r, ARR_TAG); } if (isC32(x)) { - u32* rp; B r = m_c32arrp(&rp, 1); + u32* rp; Arr* r = m_c32arrp(&rp, 1); rp[0] = o2cu(x); - arr_shAllocR(r,0); - return r; + arrP_shAllocR(r,0); + return tag(r, ARR_TAG); } return m_unit(x); } diff --git a/src/core/i32arr.h b/src/core/i32arr.h index da65e019..85a91663 100644 --- a/src/core/i32arr.h +++ b/src/core/i32arr.h @@ -20,11 +20,11 @@ static B m_i32arrc(i32** p, B x) { assert(isArr(x)); arrP_shCopy((Arr*)r, x); return tag(r, ARR_TAG); } -static B m_i32arrp(i32** p, usz ia) { // doesn't write shape/rank +static Arr* m_i32arrp(i32** p, usz ia) { // doesn't write shape/rank I32Arr* r = mm_alloc(fsizeof(I32Arr,a,i32,ia), t_i32arr); *p = r->a; r->ia = ia; - return tag(r, ARR_TAG); + return (Arr*)r; } B m_cai32(usz ia, i32* a); diff --git a/src/utils/mut.h b/src/utils/mut.h index 125a523f..12a04984 100644 --- a/src/utils/mut.h +++ b/src/utils/mut.h @@ -19,10 +19,10 @@ static void mut_to(Mut* m, u8 n) { m->type = n; if (o==el_MAX) { switch(n) { default: UD; - case el_i32: m->val = a(m_i32arrp(&m->ai32, m->ia)); return; - case el_f64: m->val = a(m_f64arrp(&m->af64, m->ia)); return; - case el_c32: m->val = a(m_c32arrp(&m->ac32, m->ia)); return; - case el_B :; HArr_p t = m_harrUp( m->ia); m->val = (Arr*)t.c; m->aB = t.c->a; return; + case el_i32: m->val = m_i32arrp(&m->ai32, m->ia); return; + case el_f64: m->val = m_f64arrp(&m->af64, m->ia); return; + case el_c32: m->val = m_c32arrp(&m->ac32, m->ia); return; + case el_B :; HArr_p t = m_harrUp( m->ia); m->val = (Arr*)t.c; m->aB = t.c->a; return; } } else { sprnk(m->val, 1);