From dbb716d26d82ab8fbe44601f4af2ad9873d1dc1c Mon Sep 17 00:00:00 2001 From: Peter Mikkelsen Date: Sat, 12 Feb 2022 14:06:30 +0000 Subject: Handle prototypes a bit better, but I suspect not everywhere --- memory.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'memory.c') diff --git a/memory.c b/memory.c index f1ff3a3..c94993c 100644 --- a/memory.c +++ b/memory.c @@ -64,11 +64,15 @@ freearray(Array *a) SetRefs(a, GetRefs(a)-1); if(GetRefs(a) == 0){ - if(GetType(a) == AtypeArray) - for(int i = 0; i < GetSize(a); i++) - freearray(a->arraydata[i]); + 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); + } free(a->shape); - free(a->rawdata); free(a); arrayalloccounts--; } -- cgit v1.2.3