Author: Maciej Fijalkowski <[email protected]>
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
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit