[pypy-commit] pypy refactor-str-types: Fix.
Manuel Jacob
noreply at buildbot.pypy.org
Tue Jun 4 22:28:26 CEST 2013
Author: Manuel Jacob
Branch: refactor-str-types
Changeset: r64785:1fa825c8c78d
Date: 2013-06-04 22:25 +0200
http://bitbucket.org/pypy/pypy/changeset/1fa825c8c78d/
Log: Fix.
diff --git a/pypy/module/cpyext/unicodeobject.py b/pypy/module/cpyext/unicodeobject.py
--- a/pypy/module/cpyext/unicodeobject.py
+++ b/pypy/module/cpyext/unicodeobject.py
@@ -12,7 +12,7 @@
from pypy.module.cpyext.stringobject import PyString_Check
from pypy.module.sys.interp_encoding import setdefaultencoding
from pypy.module._codecs.interp_codecs import CodecState
-from pypy.objspace.std import unicodeobject, bytesobject
+from pypy.objspace.std import unicodeobject
from rpython.rlib import runicode
from rpython.tool.sourcetools import func_renamer
import sys
@@ -684,9 +684,12 @@
str = space.unicode_w(w_str)
substr = space.unicode_w(w_substr)
if rffi.cast(lltype.Signed, direction) <= 0:
- return bytesobject.stringstartswith(str, substr, start, end)
+ w_ret = space.call_method(w_str, "startswith", w_substr,
+ space.wrap(start), space.wrap(end))
else:
- return bytesobject.stringendswith(str, substr, start, end)
+ w_ret = space.call_method(w_str, "endswith", w_substr,
+ space.wrap(start), space.wrap(end))
+ return space.int_w(w_ret)
@cpython_api([PyObject, PyObject, Py_ssize_t, Py_ssize_t], Py_ssize_t, error=-1)
def PyUnicode_Count(space, w_str, w_substr, start, end):
diff --git a/pypy/module/micronumpy/stdobjspace.py b/pypy/module/micronumpy/stdobjspace.py
--- a/pypy/module/micronumpy/stdobjspace.py
+++ b/pypy/module/micronumpy/stdobjspace.py
@@ -7,5 +7,5 @@
def register_delegates(typeorder):
typeorder[interp_boxes.W_StringBox] = [
- (bytesobject.W_StringObject, delegate_stringbox2stringobj),
+ (bytesobject.W_BytesObject, delegate_stringbox2stringobj),
]
diff --git a/pypy/objspace/std/stringmethods.py b/pypy/objspace/std/stringmethods.py
--- a/pypy/objspace/std/stringmethods.py
+++ b/pypy/objspace/std/stringmethods.py
@@ -434,8 +434,11 @@
return space.wrap(value)
def descr_lower(self, space):
- self = self._value
- return space.wrap(self.lower())
+ value = self._val()
+ builder = self._builder(len(value))
+ for i in range(len(value)):
+ builder.append(self._lower(value[i]))
+ return self._new(builder.build())
def descr_partition(self, space, w_sub):
value = self._val()
@@ -822,8 +825,11 @@
return self._new(buf.build())
def descr_upper(self, space):
- self = self._value
- return space.wrap(self.upper())
+ value = self._val()
+ builder = self._builder(len(value))
+ for i in range(len(value)):
+ builder.append(self._upper(value[i]))
+ return self._new(builder.build())
@unwrap_spec(width=int)
def descr_zfill(self, space, width):
More information about the pypy-commit
mailing list