diff options
author | Sven Gothel <[email protected]> | 2011-12-18 16:38:24 +0100 |
---|---|---|
committer | Sven Gothel <[email protected]> | 2011-12-18 16:38:24 +0100 |
commit | 970afd0ee8d69c09d90a59b90afd2149a6b211b5 (patch) | |
tree | 92b3566ccbbc46eb25b81b1f8c85dd8b659a7783 /src/com/jogamp/opencl/JOCLJNILibLoader.java | |
parent | 70407434fd4cd205b127ed7d73832eb0b3d01263 (diff) |
Add TempJarCache usage
Diffstat (limited to 'src/com/jogamp/opencl/JOCLJNILibLoader.java')
-rw-r--r-- | src/com/jogamp/opencl/JOCLJNILibLoader.java | 18 |
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()); + } + }); } } |