fixes #25226; VM repr raises RangeDefect for long string under refc (#25230)

fixes #25226

`int16` seems to be too small for a reasonable VM program
This commit is contained in:
ringabout
2025-10-17 23:32:28 +08:00
committed by GitHub
parent 5abd21dfa5
commit 1eae14a3be
2 changed files with 9 additions and 2 deletions

View File

@@ -30,7 +30,7 @@ type
TRenderFlags* = set[TRenderFlag]
TRenderTok* = object
kind*: TokType
length*: int16
length*: int32
sym*: PSym
Section = enum
@@ -154,7 +154,7 @@ proc initSrcGen(renderFlags: TRenderFlags; config: ConfigRef): TSrcGen =
)
proc addTok(g: var TSrcGen, kind: TokType, s: string; sym: PSym = nil) =
g.tokens.add TRenderTok(kind: kind, length: int16(s.len), sym: sym)
g.tokens.add TRenderTok(kind: kind, length: int32(s.len), sym: sym)
g.buf.add(s)
if kind != tkSpaces:
inc g.col, s.len

View File

@@ -479,3 +479,10 @@ static:
xxx()
static:
var foo: string
for _ in 0 ..< 100_000:
foo.add 'a'
doAssert repr(foo).len == 100_002