summaryrefslogtreecommitdiff
path: root/memory.c
diff options
context:
space:
mode:
authorPeter Mikkelsen <peter@pmikkelsen.com>2022-02-12 15:03:19 +0000
committerPeter Mikkelsen <peter@pmikkelsen.com>2022-02-12 15:03:19 +0000
commitc04424458fedf7944ed7fdabd1c5234ecba34529 (patch)
tree40f84ca4d9c6527b1d56556ac198b040cd09d1d2 /memory.c
parentdbb716d26d82ab8fbe44601f4af2ad9873d1dc1c (diff)
Only assign a->prototype when a is both empty and has type AtypeArray
Diffstat (limited to 'memory.c')
-rw-r--r--memory.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/memory.c b/memory.c
index c94993c..533e159 100644
--- a/memory.c
+++ b/memory.c
@@ -65,13 +65,13 @@ freearray(Array *a)
SetRefs(a, GetRefs(a)-1);
if(GetRefs(a) == 0){
if(GetType(a) == AtypeArray){
- if(GetSize(a) > 0){
- for(int i = 0; i < GetSize(a); i++)
- freearray(a->arraydata[i]);
- free(a->rawdata);
- }else
- freearray(a->prototype);
+ for(int i = 0; i < GetSize(a); i++)
+ freearray(a->arraydata[i]);
}
+ if(GetType(a) == AtypeArray && GetSize(a) == 0)
+ freearray(a->prototype);
+ else
+ free(a->rawdata);
free(a->shape);
free(a);
arrayalloccounts--;