[pypy-svn] r74947 - pypy/trunk/pypy/module/cpyext

getxsick at codespeak.net getxsick at codespeak.net
Mon May 31 01:31:11 CEST 2010


Author: getxsick
Date: Mon May 31 01:31:10 2010
New Revision: 74947

Modified:
   pypy/trunk/pypy/module/cpyext/api.py
Log:
use rdynload instead libffi

Modified: pypy/trunk/pypy/module/cpyext/api.py
==============================================================================
--- pypy/trunk/pypy/module/cpyext/api.py	(original)
+++ pypy/trunk/pypy/module/cpyext/api.py	Mon May 31 01:31:10 2010
@@ -802,16 +802,18 @@
     state = space.fromcache(State)
     state.package_context = name
     try:
-        from pypy.rlib import libffi
+        from pypy.rlib import rdynload
         try:
-            dll = libffi.CDLL(path, False)
-        except libffi.DLOpenError, e:
+            ll_libname = rffi.str2charp(path)
+            dll = rdynload.dlopen(ll_libname)
+            lltype.free(ll_libname, flavor='raw')
+        except rdynload.DLOpenError, e:
             raise operationerrfmt(
                 space.w_ImportError,
                 "unable to load extension module '%s': %s",
                 path, e.msg)
         try:
-            initptr = libffi.dlsym(dll.lib, 'init%s' % (name.split('.')[-1],))
+            initptr = rdynload.dlsym(dll, 'init%s' % (name.split('.')[-1],))
         except KeyError:
             raise operationerrfmt(
                 space.w_ImportError,



More information about the Pypy-commit mailing list