mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-29 01:14:41 +00:00
27 lines
513 B
Nim
27 lines
513 B
Nim
discard """
|
|
outputsub: '''inside closure
|
|
hello world'''
|
|
cmd: "nim c --gc:orc -d:useMalloc $file"
|
|
valgrind: true
|
|
"""
|
|
|
|
# bug #18579
|
|
|
|
var fp: proc (env: pointer) {.cdecl.}
|
|
var env: pointer
|
|
|
|
proc store(f: proc (){.closure.}) =
|
|
proc closeOver() =
|
|
echo "inside closure"
|
|
f()
|
|
(fp,env) = (cast[proc(env: pointer){.cdecl.}](rawProc closeOver), rawEnv closeOver)
|
|
GC_ref(cast[RootRef](env))
|
|
|
|
proc run() =
|
|
fp(env)
|
|
GC_unref(cast[RootRef](env))
|
|
|
|
store(proc() = echo "hello world")
|
|
run()
|
|
GC_fullCollect()
|