Skip to content

Commit

Permalink
avoid using toOpenarray because of nim-lang#15952
Browse files Browse the repository at this point in the history
  • Loading branch information
timotheecour committed Jun 23, 2021
1 parent a07441c commit 0d41d9c
Show file tree
Hide file tree
Showing 3 changed files with 3 additions and 19 deletions.
17 changes: 1 addition & 16 deletions lib/std/private/digitsutils.nim
Original file line number Diff line number Diff line change
Expand Up @@ -94,22 +94,7 @@ func digits10*(x: uint32): int {.inline.} =
elif x >= firstPow10(2): 2 # 1, 2
else: 1

# proc numToString*(result: var openArray[char], num: uint64) {.inline.} =
# var x = num
# var i = result.len - 2
# while i >= 0:
# let xi = (x mod 100) shl 1
# x = x div 100
# when defined(nimHasDragonBox): # pending bootstrap >= 1.4.0, nimHasDragonBox isn't relevant
# cast[ptr uint16](result[i].addr)[] = cast[ptr uint16](digits100[xi].unsafeAddr)[]
# else:
# result[i] = digits100[xi]
# result[i+1] = digits100[xi+1]
# i = i - 2
# if i == - 1:
# result[0] = chr(ord('0') + x)

proc numToString*(result: var string, num: uint64, start: int) {.inline.} =
proc addIntImpl*(result: var string, num: uint64, start: int) {.inline.} =
# pending bug #15952, use `(result: var openArray[char], num: uint64)`
var x = num
var i = result.len - 2
Expand Down
2 changes: 1 addition & 1 deletion lib/system/dollars.nim
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ proc `$`*(x: int): string {.magic: "IntToStr", noSideEffect.}

template dollarImpl(x: uint | uint64, result: var string) =
setLen(result, digits10(x))
numToString(result, x, 0)
addIntImpl(result, x, 0)

when defined(js):
import std/private/since
Expand Down
3 changes: 1 addition & 2 deletions lib/system/strmantle.nim
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,7 @@ proc addInt*(result: var string; x: int64) =
num = uint64(x)
length = digits10(num)
setLen(result, base + length)
# numToString(toOpenArray(result, result.len - length, result.len - 1), num)
numToString(result, num, result.len - length)
addIntImpl(result, num, result.len - length)

proc nimIntToStr(x: int): string {.compilerRtl.} =
result = newStringOfCap(sizeof(x)*4)
Expand Down

0 comments on commit 0d41d9c

Please sign in to comment.