if (CarbonHandle == NULL) CarbonHandle = NSAddImage("/System/Library/Frameworks/Carbon.framework/Versions/A/Carbon", NSADDIMAGE_OPTION_NONE);
if (AGLHandle == NULL) AGLHandle = NSAddImage("/System/Library/Frameworks/AGL.framework/Versions/A/AGL", NSADDIMAGE_OPTION_NONE);
if (SCHandle == NULL) SCHandle = NSAddImage("/System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration", NSADDIMAGE_OPTION_NONE);
- void* ret = NSAddressOfSymbol(NSLookupSymbolInImage(CarbonHandle, symbol, NSLOOKUPSYMBOLINIMAGE_OPTION_BIND_NOW));
- if (ret == NULL) ret = NSAddressOfSymbol(NSLookupSymbolInImage(AGLHandle, symbol, NSLOOKUPSYMBOLINIMAGE_OPTION_BIND_NOW));
- if (ret == NULL) ret = NSAddressOfSymbol(NSLookupSymbolInImage(SCHandle, symbol, NSLOOKUPSYMBOLINIMAGE_OPTION_BIND_NOW));
+ void* ret = NSAddressOfSymbol(NSLookupSymbolInImage(CarbonHandle, symbol, NSLOOKUPSYMBOLINIMAGE_OPTION_BIND));
+ if (ret == NULL) ret = NSAddressOfSymbol(NSLookupSymbolInImage(AGLHandle, symbol, NSLOOKUPSYMBOLINIMAGE_OPTION_BIND));
+ if (ret == NULL) ret = NSAddressOfSymbol(NSLookupSymbolInImage(SCHandle, symbol, NSLOOKUPSYMBOLINIMAGE_OPTION_BIND));
printf("linking symbol %s to address %x\n", symbol, ret);
fflush(stdout);
return ret;
#define declare_weak(symbol) typeof(symbol) *symbol##_weak = NULL
+//declare_weak(setBackingType);
+//#define setBackingType (*setBackingType_weak)
declare_weak(AEGetNthPtr);
#define AEGetNthPtr (*AEGetNthPtr_weak)
declare_weak(CFArrayGetCount);
#define CPSSetFrontProcess (*CPSSetFrontProcess_weak)
static void load_weak_symbols() {
+ // setBackingType_weak = (typeof(setBackingType_weak))load_weak("_setBackingType");
AEGetNthPtr_weak = (typeof(AEGetNthPtr_weak))load_weak("_AEGetNthPtr");
CFArrayGetCount_weak = (typeof(CFArrayGetCount_weak))load_weak("_CFArrayGetCount");
CFArrayGetTypeID_weak = (typeof(CFArrayGetTypeID_weak))load_weak("_CFArrayGetTypeID");