bugfix: do not call memcmp for nil strings

This commit is contained in:
Andreas Rumpf 2018-01-19 09:26:11 +01:00
commit 0b52466bb8

View file

@ -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