# HG changeset patch # User Mike Pavone # Date 1367307450 25200 # Node ID 852b8765bba66538e140fb5d52a991608de8696b # Parent 4c7933444df4141a6b0981f18057c449fa2e3844 Fix infinite loop in Z80 disassembler diff -r 4c7933444df4 -r 852b8765bba6 zdis.c --- a/zdis.c Mon Apr 29 23:02:39 2013 -0700 +++ b/zdis.c Tue Apr 30 00:37:30 2013 -0700 @@ -125,7 +125,7 @@ break; } for(;;) { - if (address > filesize) { + if (address > filesize || is_visited(address)) { break; } visit(address); @@ -133,8 +133,8 @@ address += (next-encoded); encoded = next; - //m68k_disasm(&instbuf, disbuf); - //printf("%X: %s\n", instbuf.address, disbuf); + //z80_disasm(&instbuf, disbuf); + //printf("%X: %s\n", address, disbuf); if (instbuf.op == Z80_HALT || instbuf.op == Z80_RET || instbuf.op == Z80_RETI || instbuf.op == Z80_RETN || instbuf.op == Z80_RST) { break; }