summary refs log tree commit diff stats
path: root/lib
diff options
context:
space:
mode:
authorAndreas Rumpf <rumpf_a@web.de>2020-09-15 12:40:23 +0200
committerGitHub <noreply@github.com>2020-09-15 12:40:23 +0200
commitbc179ccc3f3c0df8b0c725b477c7cfeefaef4594 (patch)
tree82e2eecaa7367abb24ea33de041e1dd9abc8cc3f /lib
parent073bea66064afd72cd5e0ffc65569a1833dce385 (diff)
downloadNim-bc179ccc3f3c0df8b0c725b477c7cfeefaef4594.tar.gz
fixes #15076 (#15329)
Diffstat (limited to 'lib')
-rw-r--r--lib/system/orc.nim23
1 files changed, 18 insertions, 5 deletions
diff --git a/lib/system/orc.nim b/lib/system/orc.nim
index 7c4cf9d98..7500ba374 100644
--- a/lib/system/orc.nim
+++ b/lib/system/orc.nim
@@ -40,7 +40,7 @@ template setColor(c, col) =
 proc nimIncRefCyclic(p: pointer) {.compilerRtl, inl.} =
   let h = head(p)
   inc h.rc, rcIncrement
-  h.setColor colPurple # mark as potential cycle!
+  #h.setColor colPurple # mark as potential cycle!
 
 const
   useJumpStack = false # for thavlak the jump stack doesn't improve the performance at all
@@ -74,6 +74,19 @@ proc free(s: Cell; desc: PNimType) {.inline.} =
 
   if desc.disposeImpl != nil:
     cast[DisposeProc](desc.disposeImpl)(p)
+
+  when false:
+    cstderr.rawWrite desc.name
+    cstderr.rawWrite " "
+    if desc.disposeImpl == nil:
+      cstderr.rawWrite "lacks dispose"
+      if desc.traceImpl != nil:
+        cstderr.rawWrite ", but has trace\n"
+      else:
+        cstderr.rawWrite ", and lacks trace\n"
+    else:
+      cstderr.rawWrite "has dispose!\n"
+
   nimRawDispose(p)
 
 proc nimTraceRef(q: pointer; desc: PNimType; env: pointer) {.compilerRtl.} =
@@ -342,8 +355,8 @@ proc nimDecRefIsLastCyclicDyn(p: pointer): bool {.compilerRtl, inl.} =
       #cprintf("[DESTROY] %p\n", p)
     else:
       dec cell.rc, rcIncrement
-    if cell.color == colPurple:
-      rememberCycle(result, cell, cast[ptr PNimType](p)[])
+    #if cell.color == colPurple:
+    rememberCycle(result, cell, cast[ptr PNimType](p)[])
 
 proc nimDecRefIsLastCyclicStatic(p: pointer; desc: PNimType): bool {.compilerRtl, inl.} =
   if p != nil:
@@ -353,5 +366,5 @@ proc nimDecRefIsLastCyclicStatic(p: pointer; desc: PNimType): bool {.compilerRtl
       #cprintf("[DESTROY] %p %s\n", p, desc.name)
     else:
       dec cell.rc, rcIncrement
-    if cell.color == colPurple:
-      rememberCycle(result, cell, desc)
+    #if cell.color == colPurple:
+    rememberCycle(result, cell, desc)