Author: Maciej Fijalkowski <fij...@gmail.com>
Branch: 
Changeset: r67850:d0546ed6ba48
Date: 2013-11-05 17:23 +0200
http://bitbucket.org/pypy/pypy/changeset/d0546ed6ba48/

Log:    hack a little differently. test to follow

diff --git a/pypy/module/__pypy__/interp_builders.py 
b/pypy/module/__pypy__/interp_builders.py
--- a/pypy/module/__pypy__/interp_builders.py
+++ b/pypy/module/__pypy__/interp_builders.py
@@ -4,6 +4,7 @@
 from pypy.interpreter.typedef import TypeDef
 from rpython.rlib.rstring import UnicodeBuilder, StringBuilder
 from rpython.tool.sourcetools import func_with_new_name
+from rpython.rlib import jit
 
 
 def create_builder(name, strtype, builder_cls):
@@ -23,10 +24,16 @@
         def descr__new__(space, w_subtype, size=-1):
             return W_Builder(space, size)
 
+        @jit.unroll_safe
+        def _append_multiple_chars(self, s):
+            for c in s:
+                self.builder.append(c)
+
         @unwrap_spec(s=strtype)
         def descr_append(self, space, s):
             self._check_done(space)
-            if len(s) == 1:
+            if jit.is_constant(len(s)) and len(s) < 5:
+                self._append_multiple_chars(s)
                 # the same but annotated as char
                 self.builder.append(s[0])
             else:
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to