hotfix 3221ac0943 broke gc:regions/aka gc:stack by

underallocating for sequences of any type larger than 1 byte.  This does the
necessary multiply to restore basic functionality.
This commit is contained in:
Charles Blake
2018-06-13 10:36:47 -04:00
parent cd65ef0056
commit ed4f1f4c43

View File

@@ -562,7 +562,8 @@ else:
when not declared(nimNewSeqOfCap):
proc nimNewSeqOfCap(typ: PNimType, cap: int): pointer {.compilerproc.} =
when defined(gcRegions):
result = newStr(typ, cap, ntfNoRefs notin typ.base.flags)
let s = mulInt(cap, typ.base.size) # newStr already adds GenericSeqSize
result = newStr(typ, s, ntfNoRefs notin typ.base.flags)
else:
let s = addInt(mulInt(cap, typ.base.size), GenericSeqSize)
when declared(newObjNoInit):