summaryrefslogtreecommitdiff
path: root/memory.c
diff options
context:
space:
mode:
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--;