Author: Antonio Cuni <anto.c...@gmail.com> Branch: Changeset: r54500:e37e49727337 Date: 2012-04-18 16:01 +0200 http://bitbucket.org/pypy/pypy/changeset/e37e49727337/
Log: merge heads diff --git a/pypy/module/cpyext/iterator.py b/pypy/module/cpyext/iterator.py --- a/pypy/module/cpyext/iterator.py +++ b/pypy/module/cpyext/iterator.py @@ -22,7 +22,7 @@ cannot be iterated.""" return space.iter(w_obj) -@cpython_api([PyObject], PyObject, error=CANNOT_FAIL) +@cpython_api([PyObject], PyObject) def PyIter_Next(space, w_obj): """Return the next value from the iteration o. If the object is an iterator, this retrieves the next value from the iteration, and returns diff --git a/pypy/module/cpyext/test/test_iterator.py b/pypy/module/cpyext/test/test_iterator.py --- a/pypy/module/cpyext/test/test_iterator.py +++ b/pypy/module/cpyext/test/test_iterator.py @@ -15,3 +15,8 @@ assert space.unwrap(api.PyIter_Next(w_iter)) == 3 assert api.PyIter_Next(w_iter) is None assert not api.PyErr_Occurred() + + def test_iternext_error(self,space, api): + assert api.PyIter_Next(space.w_None) is None + assert api.PyErr_Occurred() is space.w_TypeError + api.PyErr_Clear() diff --git a/pypy/module/cpyext/test/test_unicodeobject.py b/pypy/module/cpyext/test/test_unicodeobject.py --- a/pypy/module/cpyext/test/test_unicodeobject.py +++ b/pypy/module/cpyext/test/test_unicodeobject.py @@ -453,8 +453,8 @@ def test_tailmatch(self, space, api): w_str = space.wrap(u"abcdef") - assert api.PyUnicode_Tailmatch(w_str, space.wrap("cde"), 2, 10, 1) == 1 - assert api.PyUnicode_Tailmatch(w_str, space.wrap("cde"), 1, 5, -1) == 1 + assert api.PyUnicode_Tailmatch(w_str, space.wrap("cde"), 2, 10, -1) == 1 + assert api.PyUnicode_Tailmatch(w_str, space.wrap("cde"), 1, 5, 1) == 1 self.raises(space, api, TypeError, api.PyUnicode_Tailmatch, w_str, space.wrap(3), 2, 10, 1) 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 @@ -593,7 +593,7 @@ suffix match), 0 otherwise. Return -1 if an error occurred.""" str = space.unicode_w(w_str) substr = space.unicode_w(w_substr) - if rffi.cast(lltype.Signed, direction) >= 0: + if rffi.cast(lltype.Signed, direction) <= 0: return stringtype.stringstartswith(str, substr, start, end) else: return stringtype.stringendswith(str, substr, start, end) diff --git a/pypy/rpython/module/ll_os.py b/pypy/rpython/module/ll_os.py --- a/pypy/rpython/module/ll_os.py +++ b/pypy/rpython/module/ll_os.py @@ -1168,8 +1168,11 @@ DIRENTP = lltype.Ptr(DIRENT) os_opendir = self.llexternal('opendir', [rffi.CCHARP], DIRP, compilation_info=compilation_info) + # XXX macro=True is hack to make sure we get the correct kind of + # dirent struct (which depends on defines) os_readdir = self.llexternal('readdir', [DIRP], DIRENTP, - compilation_info=compilation_info) + compilation_info=compilation_info, + macro=True) os_closedir = self.llexternal('closedir', [DIRP], rffi.INT, compilation_info=compilation_info) diff --git a/pypy/translator/c/extfunc.py b/pypy/translator/c/extfunc.py --- a/pypy/translator/c/extfunc.py +++ b/pypy/translator/c/extfunc.py @@ -5,7 +5,6 @@ from pypy.rpython.lltypesystem.rstr import STR, mallocstr from pypy.rpython.lltypesystem import rstr from pypy.rpython.lltypesystem import rlist -from pypy.rpython.module import ll_time, ll_os # table of functions hand-written in src/ll_*.h # Note about *.im_func: The annotator and the rtyper expect direct _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit