[pypy-svn] r7327 - pypy/trunk/src/pypy/translator/tool/pygame
mgedmin at codespeak.net
mgedmin at codespeak.net
Wed Nov 17 15:54:28 CET 2004
Author: mgedmin
Date: Wed Nov 17 15:54:27 2004
New Revision: 7327
Modified:
pypy/trunk/src/pypy/translator/tool/pygame/flowviewer.py
Log:
Updated variable binding history graph so that links to the same location
use the same word.
Modified: pypy/trunk/src/pypy/translator/tool/pygame/flowviewer.py
==============================================================================
--- pypy/trunk/src/pypy/translator/tool/pygame/flowviewer.py (original)
+++ pypy/trunk/src/pypy/translator/tool/pygame/flowviewer.py Wed Nov 17 15:54:27 2004
@@ -21,7 +21,7 @@
def __init__(self, translator, name, info, caused_by, history, func_names):
self.links = {}
- self.func_by_name = {}
+ self.linkinfo = {}
self.translator = translator
self.func_names = func_names
dotgen = DotGen('binding')
@@ -45,23 +45,23 @@
def createlink(self, position_key, wording='Caused by a call from'):
fn, block, pos = position_key
- fn_name = self.func_names.get(fn, fn.func_name)
- basename = fn_name
+ basename = self.func_names.get(fn, fn.func_name)
+ linkname = basename
n = 1
- while fn_name in self.links:
+ while self.linkinfo.get(linkname, position_key) != position_key:
n += 1
- fn_name = '%s_%d' % (basename, n)
- self.func_by_name[fn_name] = fn
+ linkname = '%s_%d' % (basename, n)
+ self.linkinfo[linkname] = position_key
# It would be nice to get the block name somehow
blockname = block.__class__.__name__
- self.links[fn_name] = '%s, %s, position %r' % (basename, blockname,
+ self.links[linkname] = '%s, %s, position %r' % (basename, blockname,
pos)
- return '%s %s' % (wording, fn_name)
+ return '%s %s' % (wording, linkname)
def followlink(self, funcname):
- func = self.func_by_name[funcname]
+ fn, block, pos = self.linkinfo[funcname]
# It would be nice to focus on the block
- return FlowGraphLayout(self.translator, [func], self.func_names)
+ return FlowGraphLayout(self.translator, [fn], self.func_names)
class FlowGraphLayout(GraphLayout):
More information about the Pypy-commit
mailing list