[pypy-svn] r75502 - in pypy/branch/fast-ctypes/pypy: module/jitffi rlib

getxsick at codespeak.net getxsick at codespeak.net
Tue Jun 22 18:10:44 CEST 2010


Author: getxsick
Date: Tue Jun 22 18:10:43 2010
New Revision: 75502

Modified:
   pypy/branch/fast-ctypes/pypy/module/jitffi/interp_jitffi.py
   pypy/branch/fast-ctypes/pypy/rlib/rjitffi.py
Log:
workaround to avoid double loading of library


Modified: pypy/branch/fast-ctypes/pypy/module/jitffi/interp_jitffi.py
==============================================================================
--- pypy/branch/fast-ctypes/pypy/module/jitffi/interp_jitffi.py	(original)
+++ pypy/branch/fast-ctypes/pypy/module/jitffi/interp_jitffi.py	Tue Jun 22 18:10:43 2010
@@ -64,8 +64,7 @@
 class W_CDLL(Wrappable, rjitffi.CDLL):
     def __init__(self, space, name):
         self.space = space
-        rjitffi.CDLL.__init__(self, name)
-        # XXX we load a library twice (in super-class and below)
+        rjitffi.CDLL.__init__(self, name, load=False)
         self.lib_w = W_LibHandler(self.space, name)
 
     def get_w(self, space, func, w_args_type, res_type='void'):

Modified: pypy/branch/fast-ctypes/pypy/rlib/rjitffi.py
==============================================================================
--- pypy/branch/fast-ctypes/pypy/rlib/rjitffi.py	(original)
+++ pypy/branch/fast-ctypes/pypy/rlib/rjitffi.py	Tue Jun 22 18:10:43 2010
@@ -7,11 +7,14 @@
 from pypy.jit.metainterp.typesystem import deref
 
 class CDLL(object):
-    def __init__(self, name):
-        try:
-            self.lib = rdynload.dlopen(name)
-        except rdynload.DLOpenError, e:
-            raise OSError('%s: %s', name, e.msg or 'unspecified error')
+    def __init__(self, name, load=True):
+        if load:
+            try:
+                self.lib = rdynload.dlopen(name)
+            except rdynload.DLOpenError, e:
+                raise OSError('%s: %s', name, e.msg or 'unspecified error')
+        else:
+            self.lib = None
 
         self.name = name
         self.cpu = CPU(None, None)



More information about the Pypy-commit mailing list