[pypy-commit] pypy default: Fix.

arigo noreply at buildbot.pypy.org
Sun Apr 1 16:25:48 CEST 2012


Author: Armin Rigo <arigo at tunes.org>
Branch: 
Changeset: r54118:ee1a3b5094b8
Date: 2012-04-01 16:25 +0200
http://bitbucket.org/pypy/pypy/changeset/ee1a3b5094b8/

Log:	Fix.

diff --git a/pypy/module/cpyext/pyerrors.py b/pypy/module/cpyext/pyerrors.py
--- a/pypy/module/cpyext/pyerrors.py
+++ b/pypy/module/cpyext/pyerrors.py
@@ -2,6 +2,7 @@
 
 from pypy.rpython.lltypesystem import rffi, lltype
 from pypy.interpreter.error import OperationError
+from pypy.interpreter import pytraceback
 from pypy.module.cpyext.api import cpython_api, CANNOT_FAIL, CONST_STRING
 from pypy.module.exceptions.interp_exceptions import W_RuntimeWarning
 from pypy.module.cpyext.pyobject import (
@@ -364,10 +365,12 @@
     if w_value is None or space.is_w(w_value, space.w_None):
         operror = None
     else:
-        if w_traceback is None or space.is_w(w_traceback, space.w_None):
-            tb = None
-        else:
-            tb = w_traceback
+        tb = None
+        if w_traceback is not None:
+            try:
+                tb = pytraceback.check_traceback(space, w_traceback, '?')
+            except OperationError:    # catch and ignore bogus objects
+                pass
         operror = OperationError(w_type, w_value, tb)
     #
     ec = space.getexecutioncontext()


More information about the pypy-commit mailing list