From 48a611cf0044bdde4e3955b1ca9f088b3f4bffbe Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Wed, 27 Oct 2004 13:53:37 +0000 Subject: [PATCH] don't abort if a shared library can't be loaded under OS X, just return an error git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30119 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/common/dynlib.cpp | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/common/dynlib.cpp b/src/common/dynlib.cpp index cfbc76281e..c2adec7818 100644 --- a/src/common/dynlib.cpp +++ b/src/common/dynlib.cpp @@ -99,22 +99,28 @@ const char *dlerror() void *dlopen(const char *path, int WXUNUSED(mode) /* mode is ignored */) { - int dyld_result; NSObjectFileImage ofile; NSModule handle = NULL; - dyld_result = NSCreateObjectFileImageFromFile(path, &ofile); - if (dyld_result != NSObjectFileImageSuccess) + int dyld_result = NSCreateObjectFileImageFromFile(path, &ofile); + if ( dyld_result != NSObjectFileImageSuccess ) { - TranslateError(path, dyld_result); + handle = NULL; } else { - // NSLinkModule will cause the run to abort on any link error's - // not very friendly but the error recovery functionality is limited. - handle = NSLinkModule(ofile, path, NSLINKMODULE_OPTION_BINDNOW); + handle = NSLinkModule + ( + ofile, + path, + NSLINKMODULE_OPTION_BINDNOW | + NSLINKMODULE_OPTION_RETURN_ON_ERROR + ); } + if ( !handle ) + TranslateError(path, dyld_result); + return handle; }