diff --git a/version3.0/nasal_gc.h b/version3.0/nasal_gc.h index dfd94ea..bbd7419 100644 --- a/version3.0/nasal_gc.h +++ b/version3.0/nasal_gc.h @@ -77,21 +77,43 @@ int nasal_gc::gc_alloc() free_space.push(i); } int ret=free_space.front(); + memory[ret/GC_BLK_SIZE][ret%GC_BLK_SIZE].collected=false; + memory[ret/GC_BLK_SIZE][ret%GC_BLK_SIZE].ref_cnt=1; free_space.pop(); return ret; } int nasal_gc::add_ref(int mem_space) { - if(0<=mem_space && mem_space> [gc] add_ref:unexpected memory \'"<> [gc] del_ref:unexpected memory \'"<