diff options
author | Jack Jansen <jack.jansen@cwi.nl> | 2004-07-15 22:28:48 (GMT) |
---|---|---|
committer | Jack Jansen <jack.jansen@cwi.nl> | 2004-07-15 22:28:48 (GMT) |
commit | e4979782017e2a436c7f5634cb7347a420157ec5 (patch) | |
tree | 5d55fac802df0acfc6b9555a6509f838dfb764b8 | |
parent | ad1654e03aca95f8d5cad75ad377c3b67cb73f91 (diff) | |
download | cpython-e4979782017e2a436c7f5634cb7347a420157ec5.zip cpython-e4979782017e2a436c7f5634cb7347a420157ec5.tar.gz cpython-e4979782017e2a436c7f5634cb7347a420157ec5.tar.bz2 |
Fix for 838140: don't call NSUnlinkModule when we fail to find our
expected entrypoint. The unlinking will crash the application if the
module contained ObjC code. The price of this is small: a little wasted
memory, and only in a case than isn't expected to occur often.
-rw-r--r-- | Python/dynload_next.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/Python/dynload_next.c b/Python/dynload_next.c index cf42cb7..27df356 100644 --- a/Python/dynload_next.c +++ b/Python/dynload_next.c @@ -92,7 +92,7 @@ dl_funcptr _PyImport_GetDynLoadFunc(const char *fqname, const char *shortname, #ifdef USE_DYLD_GLOBAL_NAMESPACE if (!NSIsSymbolNameDefined(funcname)) { /* UnlinkModule() isn't implemented in current versions, but calling it does no harm */ - NSUnLinkModule(newModule, FALSE); + /* NSUnLinkModule(newModule, FALSE); removed: causes problems for ObjC code */ PyErr_Format(PyExc_ImportError, "Loaded module does not contain symbol %.200s", funcname); @@ -102,7 +102,7 @@ dl_funcptr _PyImport_GetDynLoadFunc(const char *fqname, const char *shortname, #else theSym = NSLookupSymbolInModule(newModule, funcname); if ( theSym == NULL ) { - NSUnLinkModule(newModule, FALSE); + /* NSUnLinkModule(newModule, FALSE); removed: causes problems for ObjC code */ PyErr_Format(PyExc_ImportError, "Loaded module does not contain symbol %.200s", funcname); |