bugfix: do not call memcmp for nil strings
This commit is contained in:
parent
fea66497b4
commit
0b52466bb8
1 changed files with 6 additions and 3 deletions
|
|
@ -25,9 +25,12 @@ proc cmpStrings(a, b: NimString): int {.inline, compilerProc.} =
|
||||||
if a == nil: return -1
|
if a == nil: return -1
|
||||||
if b == nil: return 1
|
if b == nil: return 1
|
||||||
let minlen = min(a.len, b.len)
|
let minlen = min(a.len, b.len)
|
||||||
result = c_memcmp(addr a.data, addr b.data, minlen.csize)
|
if minlen > 0:
|
||||||
if result == 0:
|
result = c_memcmp(addr a.data, addr b.data, minlen.csize)
|
||||||
result = a.len - b.len
|
if result == 0:
|
||||||
|
result = a.len - b.len
|
||||||
|
else:
|
||||||
|
result = 0
|
||||||
|
|
||||||
proc eqStrings(a, b: NimString): bool {.inline, compilerProc.} =
|
proc eqStrings(a, b: NimString): bool {.inline, compilerProc.} =
|
||||||
if a == b: return true
|
if a == b: return true
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue