tests/gc/gcleak4.nim

This commit is contained in:
Araq 2012-06-24 17:15:54 +02:00
commit d257f7fd36
3 changed files with 13 additions and 4 deletions

View file

@ -632,7 +632,12 @@ proc genericHashAux(dest: Pointer, mt: PNimType, shallow: bool,
else:
result = h
var s = cast[ppointer](dest)[]
if s != nil: result = genericHashAux(s, mt.base, shallow, result)
if s != nil:
result = result !& genericHashAux(s, mt.base, shallow, result)
# hash the object header:
#const headerSize = sizeof(int)*2
#result = result !& hash(cast[pointer](cast[int](s) -% headerSize),
# headerSize)
else:
result = h !& hash(dest, mt.size) # hash raw bits

View file

@ -100,6 +100,8 @@ proc usrToCell(usr: pointer): PCell {.inline.} =
result = cast[PCell](cast[TAddress](usr)-%TAddress(sizeof(TCell)))
proc canbeCycleRoot(c: PCell): bool {.inline.} =
if c.typ == nil:
echo "ARRGHHHHHHH"
result = ntfAcyclic notin c.typ.flags
proc extGetCellType(c: pointer): PNimType {.compilerproc.} =