From ca51dc9bd388ca26a001b576c00d9be6e649734f Mon Sep 17 00:00:00 2001 From: Steve Checkoway Date: Sun, 15 Jan 2006 12:21:19 +0000 Subject: [PATCH] Apple decided to deprecate two perfectly good functions, replace them with lower level dyld code and use two-level namespace lookup instead. --- stepmania/src/arch/LowLevelWindow/LowLevelWindow_Cocoa.mm | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/stepmania/src/arch/LowLevelWindow/LowLevelWindow_Cocoa.mm b/stepmania/src/arch/LowLevelWindow/LowLevelWindow_Cocoa.mm index 248e542a83..70416dd7fa 100644 --- a/stepmania/src/arch/LowLevelWindow/LowLevelWindow_Cocoa.mm +++ b/stepmania/src/arch/LowLevelWindow/LowLevelWindow_Cocoa.mm @@ -99,11 +99,14 @@ LowLevelWindow_Cocoa::~LowLevelWindow_Cocoa() void *LowLevelWindow_Cocoa::GetProcAddress( CString s ) { // http://developer.apple.com/qa/qa2001/qa1188.html + // Both functions mentioned in there are deprecated in 10.4. const CString& symbolName( '_' + s ); + const uint32_t count = _dyld_image_count(); NSSymbol symbol = NULL; + const uint32_t options = NSLOOKUPSYMBOLINIMAGE_OPTION_RETURN_ON_ERROR; - if( NSIsSymbolNameDefined(symbolName) ) - symbol = NSLookupAndBindSymbol( symbolName ); + for( uint32_t i = 0; i < count && !symbol; ++i ) + symbol = NSLookupSymbolInImage( _dyld_get_image_header(i), symbolName, options ); return symbol ? NSAddressOfSymbol( symbol ) : NULL; }