diff options
author | Araq <rumpf_a@web.de> | 2012-01-29 02:13:53 +0100 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2012-01-29 02:13:53 +0100 |
commit | 23340695d03eb6150a4a9068681795232e4f0734 (patch) | |
tree | 51626aff70ebee5a5cbec5141e81eb700d15174a /lib/system | |
parent | 1a2ccd6a23e1fbc4523b814ce4b444c721c6d57f (diff) | |
download | Nim-23340695d03eb6150a4a9068681795232e4f0734.tar.gz |
fixes #89
Diffstat (limited to 'lib/system')
-rwxr-xr-x | lib/system/debugger.nim | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/lib/system/debugger.nim b/lib/system/debugger.nim index 49a2da89f..6d5e2d648 100755 --- a/lib/system/debugger.nim +++ b/lib/system/debugger.nim @@ -603,8 +603,11 @@ proc genericHashAux(dest: Pointer, mt: PNimType, shallow: bool, result = h if x != nil: let s = cast[NimString](x) - let y = cast[pointer](cast[int](x) -% 2*sizeof(int)) - result = result !& hash(x, s.len + 2*sizeof(int)) + when true: + result = result !& hash(x, s.len) + else: + let y = cast[pointer](cast[int](x) -% 2*sizeof(int)) + result = result !& hash(y, s.len + 2*sizeof(int)) of tySequence: var x = cast[ppointer](dest) var dst = cast[taddress](cast[ppointer](dest)[]) @@ -627,8 +630,9 @@ proc genericHashAux(dest: Pointer, mt: PNimType, shallow: bool, if shallow: result = h !& hash(dest, mt.size) else: + result = h var s = cast[ppointer](dest)[] - if s != nil: result = genericHashAux(s, mt.base, shallow, h) + if s != nil: result = genericHashAux(s, mt.base, shallow, result) else: result = h !& hash(dest, mt.size) # hash raw bits |