X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3640d0da6b6ddd3149d3875e22f1a2910d0ce84c..142b15c5a1c54540de52a72f3059fdffaa1c8afe:/src/common/dynlib.cpp?ds=sidebyside 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; }