aboutsummaryrefslogtreecommitdiffstats
path: root/src/java/com/jogamp/common/os/DynamicLibraryBundle.java
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2011-08-09 20:56:27 +0200
committerSven Gothel <[email protected]>2011-08-09 20:56:27 +0200
commit90ff6c401934121395fa4a127e8b889106fda07a (patch)
tree5e9d5161320e7f507e10f77cf256a8e6e425c0b5 /src/java/com/jogamp/common/os/DynamicLibraryBundle.java
parentae6b6a4ebec87be9a9dfb4df2eecb7c4e21dd37d (diff)
DynamicLibraryBundleInfo: Allow impl. to select tool/system lookup
Diffstat (limited to 'src/java/com/jogamp/common/os/DynamicLibraryBundle.java')
-rwxr-xr-xsrc/java/com/jogamp/common/os/DynamicLibraryBundle.java26
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;
}