summary refs log tree commit diff stats
path: root/lib/system
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2012-01-29 02:13:53 +0100
committerAraq <rumpf_a@web.de>2012-01-29 02:13:53 +0100
commit23340695d03eb6150a4a9068681795232e4f0734 (patch)
tree51626aff70ebee5a5cbec5141e81eb700d15174a /lib/system
parent1a2ccd6a23e1fbc4523b814ce4b444c721c6d57f (diff)
downloadNim-23340695d03eb6150a4a9068681795232e4f0734.tar.gz
fixes #89
Diffstat (limited to 'lib/system')
-rwxr-xr-xlib/system/debugger.nim10
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