summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--lib/system/channels.nim2
-rw-r--r--lib/system/gc.nim2
2 files changed, 3 insertions, 1 deletions
diff --git a/lib/system/channels.nim b/lib/system/channels.nim
index 89f742ca5..f5bcdec03 100644
--- a/lib/system/channels.nim
+++ b/lib/system/channels.nim
@@ -143,7 +143,7 @@ proc storeAux(dest, src: Pointer, mt: PNimType, t: PRawChannel,
         # XXX we should use the dynamic type here too, but that is not stored

         # in the inbox at all --> use source[]'s object type? but how? we need

         # a tyRef to the object!

-        var obj = newObj(mt.base, mt.base.size)

+        var obj = newObj(mt, mt.base.size)

         unsureAsgnRef(x, obj)

       storeAux(x[], s, mt.base, t, mode)

       if mode != mStore: Dealloc(t.region, s)

diff --git a/lib/system/gc.nim b/lib/system/gc.nim
index 0ab5f4d94..cb264fe0d 100644
--- a/lib/system/gc.nim
+++ b/lib/system/gc.nim
@@ -90,6 +90,8 @@ template gcAssert(cond: bool, msg: string) =
   when defined(useGcAssert):
     if not cond:
       echo "[GCASSERT] ", msg
+      GC_disable()
+      writeStackTrace()
       quit 1
 
 proc addZCT(s: var TCellSeq, c: PCell) {.noinline.} =