[bugfix] owned closures (#11544)

(cherry picked from commit c65a5d754b)
This commit is contained in:
Andreas Rumpf
2019-06-20 07:40:45 +02:00
committed by narimiran
parent e0b41736b3
commit aacc97e854
11 changed files with 102 additions and 30 deletions

View File

@@ -78,6 +78,13 @@ proc nimRawDispose(p: pointer) {.compilerRtl.} =
proc nimDestroyAndDispose(p: pointer) {.compilerRtl.} =
let d = cast[ptr PNimType](p)[].destructor
if d != nil: cast[DestructorProc](d)(p)
when false:
cstderr.rawWrite cast[ptr PNimType](p)[].name
cstderr.rawWrite "\n"
if d == nil:
cstderr.rawWrite "bah, nil\n"
else:
cstderr.rawWrite "has destructor!\n"
nimRawDispose(p)
proc isObj(obj: PNimType, subclass: cstring): bool {.compilerproc.} =