[pypy-commit] jitviewer default: fix for weird classes (pdb is intentiional)

fijal noreply at buildbot.pypy.org
Wed Jul 20 12:45:53 CEST 2011


Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: 
Changeset: r148:dde7241b441f
Date: 2011-07-20 12:01 +0200
http://bitbucket.org/pypy/jitviewer/changeset/dde7241b441f/

Log:	fix for weird classes (pdb is intentiional)

diff --git a/_jitviewer/parser.py b/_jitviewer/parser.py
--- a/_jitviewer/parser.py
+++ b/_jitviewer/parser.py
@@ -1,4 +1,5 @@
 import re
+import cgi
 from pypy.tool.jitlogparser import parser
 
 class Html(str):
@@ -16,12 +17,13 @@
 
 
 def cssclass(cls, s, **kwds):
+    cls = re.sub("[^\w]", "_", cls)
     attrs = ['%s="%s"' % (name, value) for name, value in kwds.iteritems()]
-    return '<span class="%s" %s>%s</span>' % (cls, ' '.join(attrs), s)
+    return '<span class="%s" %s>%s</span>' % (cls, ' '.join(attrs),
+                                              cgi.escape(s))
 
 
 def _new_binop(name):
-    import cgi
     name = cgi.escape(name)
     def f(self):
         return '%s = %s %s %s' % (self.getres(), self.getarg(0), name, self.getarg(1))
@@ -114,6 +116,8 @@
 class TraceForOpcodeHtml(parser.TraceForOpcode):
 
     def html_repr(self):
+        #import pdb
+        #pdb.set_trace()
         if self.filename is not None:
             code = self.getcode()
             if code is None:
diff --git a/_jitviewer/test/test_parser.py b/_jitviewer/test/test_parser.py
--- a/_jitviewer/test/test_parser.py
+++ b/_jitviewer/test/test_parser.py
@@ -35,3 +35,8 @@
     html = op.html_repr()
     p0 = cssclass('p0', 'p0', onmouseover="highlight_var(this)", onmouseout="disable_var(this)")
     assert p0 in html
+
+def test_cssclass():
+    s = cssclass('asd$%', 'v')
+    print s.__class__, s
+    assert '$' not in s
diff --git a/bin/jitviewer.py b/bin/jitviewer.py
--- a/bin/jitviewer.py
+++ b/bin/jitviewer.py
@@ -157,15 +157,6 @@
             orig___init__(self2, *args, **kwds)
         BaseServer.__init__ = __init__
 
-
-class CheckingLoopStorage(LoopStorage):
-    def disassemble_code(self, fname, startlineno, name):
-        result = super(CheckingLoopStorage, self).disassemble_code(fname, startlineno, name)
-        #if result is None and fname is not None:
-        #    raise CannotFindFile(fname)
-        return result
-
-
 def main():
     PATH = os.path.join(os.path.dirname((_jitviewer.__file__)))
     print PATH
@@ -187,7 +178,7 @@
         port = 5000
     else:
         port = int(sys.argv[2])
-    storage = CheckingLoopStorage(extra_path)
+    storage = LoopStorage(extra_path)
     log, loops = import_log(filename, ParserWithHtmlRepr)
     parse_log_counts(extract_category(log, 'jit-backend-count'), loops)
     storage.reconnect_loops(loops)


More information about the pypy-commit mailing list