diff options
author | Sven Gothel <[email protected]> | 2011-08-09 20:56:27 +0200 |
---|---|---|
committer | Sven Gothel <[email protected]> | 2011-08-09 20:56:27 +0200 |
commit | 90ff6c401934121395fa4a127e8b889106fda07a (patch) | |
tree | 5e9d5161320e7f507e10f77cf256a8e6e425c0b5 /src/java/com/jogamp/common/os/DynamicLibraryBundle.java | |
parent | ae6b6a4ebec87be9a9dfb4df2eecb7c4e21dd37d (diff) |
DynamicLibraryBundleInfo: Allow impl. to select tool/system lookup
Diffstat (limited to 'src/java/com/jogamp/common/os/DynamicLibraryBundle.java')
-rwxr-xr-x | src/java/com/jogamp/common/os/DynamicLibraryBundle.java | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/src/java/com/jogamp/common/os/DynamicLibraryBundle.java b/src/java/com/jogamp/common/os/DynamicLibraryBundle.java index 7e961cc..8e072fd 100755 --- a/src/java/com/jogamp/common/os/DynamicLibraryBundle.java +++ b/src/java/com/jogamp/common/os/DynamicLibraryBundle.java @@ -306,6 +306,19 @@ public class DynamicLibraryBundle implements DynamicLookupHelper { return addr; } + private long toolDynamicLookupFunction(String funcName) { + if(0 != toolGetProcAddressHandle) { + long addr = info.toolGetProcAddress(toolGetProcAddressHandle, funcName); + if(DEBUG_LOOKUP) { + if(0!=addr) { + System.err.println("Lookup-Tool: <"+funcName+"> 0x"+Long.toHexString(addr)); + } + } + return addr; + } + return 0; + } + public long dynamicLookupFunction(String funcName) { if(!isToolLibLoaded() || null==funcName) { if(DEBUG_LOOKUP && !isToolLibLoaded()) { @@ -319,18 +332,17 @@ public class DynamicLibraryBundle implements DynamicLookupHelper { } long addr = 0; + final boolean useToolGetProcAdressFirst = info.useToolGetProcAdressFirst(funcName); - if(0 != toolGetProcAddressHandle) { - addr = info.toolDynamicLookupFunction(toolGetProcAddressHandle, funcName); - if(DEBUG_LOOKUP) { - if(0!=addr) { - System.err.println("Lookup-Tool: <"+funcName+"> 0x"+Long.toHexString(addr)); - } - } + if(useToolGetProcAdressFirst) { + addr = toolDynamicLookupFunction(funcName); } if(0==addr) { addr = dynamicLookupFunctionOnLibs(funcName); } + if(0==addr && !useToolGetProcAdressFirst) { + addr = toolDynamicLookupFunction(funcName); + } return addr; } |