Author: Armin Rigo <ar...@tunes.org> Branch: shadowstack-perf Changeset: r46027:377300db5cab Date: 2011-07-27 19:08 +0200 http://bitbucket.org/pypy/pypy/changeset/377300db5cab/
Log: Found and fixed the bug. diff --git a/pypy/rpython/memory/gctransform/shadowstack.py b/pypy/rpython/memory/gctransform/shadowstack.py --- a/pypy/rpython/memory/gctransform/shadowstack.py +++ b/pypy/rpython/memory/gctransform/shadowstack.py @@ -366,18 +366,19 @@ blocks_push_roots[graph.startblock] = 0 blockstate[graph.startblock] = "start" # - # Now detect direct transitions from "dead" to "alive", and + # Now detect direct transitions from "dead" to "alive"/"stop", and # insert new "start" blocks along the links. Similarly, detect - # direct transitions from "alive" to "dead" and put a "stop" block. + # direct transitions from "alive"/"start" to "dead" and put a + # "stop" block. for block in blockstate.keys(): if blockstate[block] == "dead": for link in block.exits: - if blockstate[link.target] == "alive": + if blockstate[link.target] in ("alive", "stop"): newblock = insert_empty_block(gct.translator.annotator, link) blocks_push_roots[newblock] = 0 blockstate[newblock] = "start" - if blockstate[block] == "alive": + if blockstate[block] in ("alive", "start"): for link in block.exits: if blockstate[link.target] == "dead": newblock = insert_empty_block(gct.translator.annotator, _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit