From 8fc2136686abeaeba42e2210ae09b509fde40cb5 Mon Sep 17 00:00:00 2001 From: Sven Gothel Date: Sun, 18 Dec 2011 17:06:42 +0100 Subject: CgDynamicLibraryBundleInfo: Add TempJarCache usage for atomic native jar (of atomic java JAR) - GLProfile, NWJNILibLoader, NEWTJNILibLoader: Issue Platform.initSingleton() upfront within priviledge block. --- .../jogamp/opengl/cg/CgDynamicLibraryBundleInfo.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/jogl/classes/com') diff --git a/src/jogl/classes/com/jogamp/opengl/cg/CgDynamicLibraryBundleInfo.java b/src/jogl/classes/com/jogamp/opengl/cg/CgDynamicLibraryBundleInfo.java index 9e4d76869..ba159b82c 100644 --- a/src/jogl/classes/com/jogamp/opengl/cg/CgDynamicLibraryBundleInfo.java +++ b/src/jogl/classes/com/jogamp/opengl/cg/CgDynamicLibraryBundleInfo.java @@ -28,12 +28,30 @@ package com.jogamp.opengl.cg; +import com.jogamp.common.jvm.JNILibLoaderBase; import com.jogamp.common.os.DynamicLibraryBundleInfo; +import com.jogamp.common.os.Platform; +import com.jogamp.common.util.cache.TempJarCache; + +import java.security.AccessController; +import java.security.PrivilegedAction; import java.util.*; public class CgDynamicLibraryBundleInfo implements DynamicLibraryBundleInfo { private static List glueLibNames; static { + AccessController.doPrivileged(new PrivilegedAction() { + public Object run() { + Platform.initSingleton(); + + if(TempJarCache.isInitialized()) { + // Cg class and natives are available in their single atomic JAR files only + JNILibLoaderBase.addNativeJarLibs(CgDynamicLibraryBundleInfo.class, "jogl_cg", null); + } + return null; + } + }); + glueLibNames = new ArrayList(); // glueLibNames.addAll(getGlueLibNamesPreload()); glueLibNames.add("jogl_cg"); -- cgit v1.2.3