[pypy-svn] pypy default: Translation fix.

arigo commits-noreply at bitbucket.org
Mon Jan 31 14:58:33 CET 2011


Author: Armin Rigo <arigo at tunes.org>
Branch: 
Changeset: r41497:b30a64cd7561
Date: 2011-01-31 14:58 +0100
http://bitbucket.org/pypy/pypy/changeset/b30a64cd7561/

Log:	Translation fix.

diff --git a/pypy/interpreter/test/test_error.py b/pypy/interpreter/test/test_error.py
--- a/pypy/interpreter/test/test_error.py
+++ b/pypy/interpreter/test/test_error.py
@@ -68,7 +68,7 @@
     #
     e = wrap_oserror(space, OSError(errno.EBADF, "foobar"),
                      filename = "test.py",
-                     exception_name = [SystemError])
+                     w_exception_class = [SystemError])
     assert isinstance(e, OperationError)
     assert e.w_type == [SystemError]
     assert e.get_w_value(space) == ([SystemError], [errno.EBADF],

diff --git a/pypy/module/mmap/interp_mmap.py b/pypy/module/mmap/interp_mmap.py
--- a/pypy/module/mmap/interp_mmap.py
+++ b/pypy/module/mmap/interp_mmap.py
@@ -246,4 +246,4 @@
 def mmap_error(space, e):
     w_module = space.getbuiltinmodule('mmap')
     w_error = space.getattr(w_module, space.wrap('error'))
-    return wrap_oserror(space, e, exception_name=w_error)
+    return wrap_oserror(space, e, w_exception_class=w_error)

diff --git a/pypy/interpreter/error.py b/pypy/interpreter/error.py
--- a/pypy/interpreter/error.py
+++ b/pypy/interpreter/error.py
@@ -360,7 +360,8 @@
                                           space.wrap(msg))
         return OperationError(exc, w_error)
 
-def wrap_oserror2(space, e, w_filename=None, exception_name='w_OSError'): 
+def wrap_oserror2(space, e, w_filename=None, exception_name='w_OSError',
+                  w_exception_class=None): 
     assert isinstance(e, OSError)
 
     if _WINDOWS and isinstance(e, WindowsError):
@@ -375,10 +376,10 @@
         msg = os.strerror(errno)
     except ValueError:
         msg = 'error %d' % errno
-    if isinstance(exception_name, str):
+    if w_exception_class is None:
         exc = getattr(space, exception_name)
     else:
-        exc = exception_name
+        exc = w_exception_class
     if w_filename is not None:
         w_error = space.call_function(exc, space.wrap(errno),
                                       space.wrap(msg), w_filename)
@@ -388,12 +389,15 @@
     return OperationError(exc, w_error)
 wrap_oserror2._annspecialcase_ = 'specialize:arg(3)'
 
-def wrap_oserror(space, e, filename=None, exception_name='w_OSError'):
+def wrap_oserror(space, e, filename=None, exception_name='w_OSError',
+                 w_exception_class=None):
     if filename is not None:
         return wrap_oserror2(space, e, space.wrap(filename),
-                             exception_name=exception_name)
+                             exception_name=exception_name,
+                             w_exception_class=w_exception_class)
     else:
         return wrap_oserror2(space, e, None,
-                             exception_name=exception_name)
+                             exception_name=exception_name,
+                             w_exception_class=w_exception_class)
 wrap_oserror._annspecialcase_ = 'specialize:arg(3)'
 


More information about the Pypy-commit mailing list