Ensured calls are gcsafe.
h3rald h3rald@h3rald.com
Mon, 25 May 2026 10:09:38 +0200
1 files changed,
14 insertions(+),
13 deletions(-)
jump to
M
minpkg/lib/min_global.nim
→
minpkg/lib/min_global.nim
@@ -1772,19 +1772,20 @@ let q = vals[0]
let reg = re(vals[1].strVal) let s_find = vals[2].strVal var i2 = i.copy(i.filename) - let repFn = proc(match: RegexMatch): string {.closure, gcsafe.} = - var ss = newSeq[MinValue](0) - ss.add match.match.newVal - for s in match.captures: - if s.isNone: - ss.add "".newVal - else: - ss.add s.get.newVal - i2.push ss.newVal - i2.push q - i2.pushSym "dequote" - return i2.pop.getString - i.push s_find.replace(reg, repFn).newVal + {.cast(gcsafe).}: + let repFn = proc(match: RegexMatch): string {.closure, gcsafe.} = + var ss = newSeq[MinValue](0) + ss.add match.match.newVal + for s in match.captures: + if s.isNone: + ss.add "".newVal + else: + ss.add s.get.newVal + i2.push ss.newVal + i2.push q + i2.pushSym "dequote" + return i2.pop.getString + i.push s_find.replace(reg, repFn).newVal def.symbol("replace") do (i: In): let vals = i.expect("str", "str", "str")