Author: Alex Gaynor <[email protected]>
Branch: 
Changeset: r59183:7ea64ec55f0c
Date: 2012-12-01 11:52 -0800
http://bitbucket.org/pypy/pypy/changeset/7ea64ec55f0c/

Log:    Optimized calling re_match.groups() where re_match's regexp is known

diff --git a/pypy/module/_sre/interp_sre.py b/pypy/module/_sre/interp_sre.py
--- a/pypy/module/_sre/interp_sre.py
+++ b/pypy/module/_sre/interp_sre.py
@@ -58,11 +58,14 @@
         mark = mark.prev
     return result
 
+
[email protected]_inside_iff(lambda space, ctx, fmarks, num_groups, w_default: 
jit.isconstant(num_groups))
 def allgroups_w(space, ctx, fmarks, num_groups, w_default):
-    grps = [slice_w(space, ctx, fmarks[i*2], fmarks[i*2+1], w_default)
+    grps = [slice_w(space, ctx, fmarks[i * 2], fmarks[i * 2 + 1], w_default)
             for i in range(num_groups)]
     return space.newtuple(grps)
 
+
 def import_re(space):
     w_builtin = space.getbuiltinmodule('__builtin__')
     w_import = space.getattr(w_builtin, space.wrap("__import__"))
@@ -85,7 +88,7 @@
 # SRE_Pattern class
 
 class W_SRE_Pattern(Wrappable):
-    _immutable_fields_ = ["code", "flags"]
+    _immutable_fields_ = ["code", "flags", "num_groups"]
 
     def cannot_copy_w(self):
         space = self.space
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to