浏览代码

fixed struct-to-dynamic being gc'ed

Nicolas Cannasse 2 年之前
父节点
当前提交
72bd6e3025
共有 1 个文件被更改,包括 1 次插入1 次删除
  1. 1 1
      src/gc.c

+ 1 - 1
src/gc.c

@@ -1030,7 +1030,7 @@ static void gc_free_page_memory( void *ptr, int size ) {
 }
 
 vdynamic *hl_alloc_dynamic( hl_type *t ) {
-	vdynamic *d = (vdynamic*)hl_gc_alloc_gen(t, sizeof(vdynamic), (hl_is_ptr(t) ? MEM_KIND_DYNAMIC : MEM_KIND_NOPTR) | MEM_ZERO);
+	vdynamic *d = (vdynamic*)hl_gc_alloc_gen(t, sizeof(vdynamic), (hl_is_ptr(t) ? (t->kind == HSTRUCT ? MEM_KIND_RAW : MEM_KIND_DYNAMIC) : MEM_KIND_NOPTR) | MEM_ZERO);
 	d->t = t;
 	return d;
 }