From e38e4f89aeb68207887d1ab498303b9f1c778943 Mon Sep 17 00:00:00 2001 From: dzaima Date: Tue, 19 Oct 2021 18:12:27 +0300 Subject: [PATCH] overallocate heap --- .gitignore | 4 +--- src/builtins/sysfn.c | 4 ++-- src/core/chrarr.h | 1 - src/opt/mm_buddyTemplate.c | 3 ++- 4 files changed, 5 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index e8fdc110..a75b3817 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,5 @@ BQN c.bqn perf.* -obj/*/*.o -obj/*/*.d -obj/*/*.tmp +obj/ asm_* \ No newline at end of file diff --git a/src/builtins/sysfn.c b/src/builtins/sysfn.c index 7affbe94..bd7730c1 100644 --- a/src/builtins/sysfn.c +++ b/src/builtins/sysfn.c @@ -340,11 +340,11 @@ B rand_range_c2(B t, B w, B x) { RAND_END; if (isArr(w)) { - switch (a(w)->ia) { + usz wia = a(w)->ia; + switch (wia) { case 0: { arr_shAlloc(r, 0); break; } case 1: { arr_shVec(r); break; } default: { - usz wia = a(w)->ia; usz* sh = arr_shAlloc(r, wia); SGetU(w); for (usz i = 0; i < wia; i++) sh[i] = o2su(GetU(w, i)); diff --git a/src/core/chrarr.h b/src/core/chrarr.h index e96302c6..db858b70 100644 --- a/src/core/chrarr.h +++ b/src/core/chrarr.h @@ -16,7 +16,6 @@ B m_str8(usz sz, char* s); B m_str8l(char* s); B m_str32(u32* s); -B m_str8l(char* s); B fromUTF8l(char* x); B fromUTF8a(I8Arr* x); diff --git a/src/opt/mm_buddyTemplate.c b/src/opt/mm_buddyTemplate.c index 8fb77630..e644a954 100644 --- a/src/opt/mm_buddyTemplate.c +++ b/src/opt/mm_buddyTemplate.c @@ -5,7 +5,8 @@ #define alSize BN(alSize) #define str(X) #X #ifndef MMAP - #define MMAP(SZ) mmap(NULL, sz, PROT_READ|PROT_WRITE, MAP_NORESERVE|MAP_PRIVATE|MAP_ANON, -1, 0) + usz getPageSize(); + #define MMAP(SZ) mmap(NULL, (SZ)+getPageSize(), PROT_READ|PROT_WRITE, MAP_NORESERVE|MAP_PRIVATE|MAP_ANON, -1, 0) #endif typedef struct AllocInfo {