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