Optimize cgen.addIndent (#21508)
* Optimize `cgen.addIndent` * Avoid temporaries
This commit is contained in:
parent
c52e44d845
commit
26b7a74a45
1 changed files with 6 additions and 2 deletions
|
|
@ -228,8 +228,12 @@ macro ropecg(m: BModule, frmt: static[FormatStr], args: untyped): Rope =
|
||||||
result.add newCall(ident"rope", resVar)
|
result.add newCall(ident"rope", resVar)
|
||||||
|
|
||||||
proc addIndent(p: BProc; result: var Rope) =
|
proc addIndent(p: BProc; result: var Rope) =
|
||||||
for i in 0..<p.blocks.len:
|
var i = result.len
|
||||||
result.add "\t".rope
|
let newLen = i + p.blocks.len
|
||||||
|
result.setLen newLen
|
||||||
|
while i < newLen:
|
||||||
|
result[i] = '\t'
|
||||||
|
inc i
|
||||||
|
|
||||||
template appcg(m: BModule, c: var Rope, frmt: FormatStr,
|
template appcg(m: BModule, c: var Rope, frmt: FormatStr,
|
||||||
args: untyped) =
|
args: untyped) =
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue