X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/55d99c7a77789ff4904bf96eddca3715eb5af9b9..68d4172048cfc0f3e658ef90ff5af926eedfdd57:/src/common/dynlib.cpp?ds=sidebyside diff --git a/src/common/dynlib.cpp b/src/common/dynlib.cpp index abf8d206a8..90945e8cae 100644 --- a/src/common/dynlib.cpp +++ b/src/common/dynlib.cpp @@ -310,12 +310,8 @@ void *wxDllLoader::GetSymbol(wxDllType dllHandle, const wxString &name, bool *su CFragSymbolClass symClass; Str255 symName; -#if TARGET_CARBON - c2pstrcpy( (StringPtr) symName, name ); -#else - strcpy( (char *) symName, name ); - c2pstr( (char *) symName ); -#endif + wxMacStringToPascal( name.c_str() , symName ) ; + if( FindSymbol( ((CFragConnectionID)dllHandle), symName, &symAddress, &symClass ) == noErr ) symbol = (void *)symAddress; @@ -484,15 +480,19 @@ int dlclose(void *handle) return 0; } -void *dlsym(void *WXUNUSED(handle), const char *symbol) +void *dlsym(void *handle, const char *symbol) { void *addr; + + NSSymbol nsSymbol = NSLookupSymbolInModule( handle , symbol ) ; - if (NSIsSymbolNameDefined(symbol)) { - addr = NSAddressOfSymbol(NSLookupAndBindSymbol(symbol)); + if ( nsSymbol) + { + addr = NSAddressOfSymbol(nsSymbol); } - else { - addr = NULL; + else + { + addr = NULL; } return addr; }