[pypy-svn] r78274 - pypy/branch/leak-finder-more/pypy/module/cpyext

afa at codespeak.net afa at codespeak.net
Mon Oct 25 18:21:01 CEST 2010


Author: afa
Date: Mon Oct 25 18:20:59 2010
New Revision: 78274

Modified:
   pypy/branch/leak-finder-more/pypy/module/cpyext/api.py
Log:
Fix memory leak when dlopen() fails.


Modified: pypy/branch/leak-finder-more/pypy/module/cpyext/api.py
==============================================================================
--- pypy/branch/leak-finder-more/pypy/module/cpyext/api.py	(original)
+++ pypy/branch/leak-finder-more/pypy/module/cpyext/api.py	Mon Oct 25 18:20:59 2010
@@ -908,8 +908,10 @@
         from pypy.rlib import rdynload
         try:
             ll_libname = rffi.str2charp(path)
-            dll = rdynload.dlopen(ll_libname)
-            lltype.free(ll_libname, flavor='raw')
+            try:
+                dll = rdynload.dlopen(ll_libname)
+            finally:
+                lltype.free(ll_libname, flavor='raw')
         except rdynload.DLOpenError, e:
             raise operationerrfmt(
                 space.w_ImportError,



More information about the Pypy-commit mailing list