summaryrefslogtreecommitdiffstats
path: root/src/com
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2011-12-18 16:38:24 +0100
committerSven Gothel <[email protected]>2011-12-18 16:38:24 +0100
commit970afd0ee8d69c09d90a59b90afd2149a6b211b5 (patch)
tree92b3566ccbbc46eb25b81b1f8c85dd8b659a7783 /src/com
parent70407434fd4cd205b127ed7d73832eb0b3d01263 (diff)
Add TempJarCache usage
Diffstat (limited to 'src/com')
-rw-r--r--src/com/jogamp/opencl/JOCLJNILibLoader.java18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/com/jogamp/opencl/JOCLJNILibLoader.java b/src/com/jogamp/opencl/JOCLJNILibLoader.java
index 4ee99f1a..328c2237 100644
--- a/src/com/jogamp/opencl/JOCLJNILibLoader.java
+++ b/src/com/jogamp/opencl/JOCLJNILibLoader.java
@@ -28,8 +28,13 @@
package com.jogamp.opencl;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+
import com.jogamp.common.jvm.JNILibLoaderBase;
import com.jogamp.common.os.NativeLibrary;
+import com.jogamp.common.os.Platform;
+import com.jogamp.common.util.cache.TempJarCache;
/**
@@ -43,7 +48,16 @@ class JOCLJNILibLoader extends JNILibLoaderBase {
* @return Returns libOpenCL represented as NativeLibrary.
*/
static NativeLibrary loadOpenCL() {
- loadLibrary("jocl", null, false);
- return NativeLibrary.open("OpenCL", JOCLJNILibLoader.class.getClassLoader());
+ return AccessController.doPrivileged(new PrivilegedAction<NativeLibrary>() {
+ public NativeLibrary run() {
+ Platform.initSingleton();
+ final String libName = "jocl";
+ if(TempJarCache.isInitialized() && null == TempJarCache.findLibrary(libName)) {
+ addNativeJarLibs(JOCLJNILibLoader.class, "jocl", null );
+ }
+ loadLibrary(libName, false);
+ return NativeLibrary.open("OpenCL", JOCLJNILibLoader.class.getClassLoader());
+ }
+ });
}
}