From dd2440cbadc642a561d8f92c502fe822b2f11762 Mon Sep 17 00:00:00 2001 From: Sven Gothel Date: Thu, 5 Feb 2015 00:19:22 +0100 Subject: Refine commit 12feaa7d3b1544098f684d851e3caff1ec88cbc8: Add 'throws SecurityException' decl., remove dead code, remove redundant check. --- .../com/jogamp/gluegen/runtime/FunctionAddressResolver.java | 10 +++++++--- src/java/com/jogamp/gluegen/runtime/ProcAddressTable.java | 5 ++--- 2 files changed, 9 insertions(+), 6 deletions(-) (limited to 'src/java/com/jogamp/gluegen') diff --git a/src/java/com/jogamp/gluegen/runtime/FunctionAddressResolver.java b/src/java/com/jogamp/gluegen/runtime/FunctionAddressResolver.java index 4fc40a4..ea7cfa2 100644 --- a/src/java/com/jogamp/gluegen/runtime/FunctionAddressResolver.java +++ b/src/java/com/jogamp/gluegen/runtime/FunctionAddressResolver.java @@ -32,16 +32,20 @@ package com.jogamp.gluegen.runtime; import com.jogamp.common.os.DynamicLookupHelper; +import com.jogamp.common.util.SecurityUtil; /** - * - * @author Michael Bien + * @author Michael Bien, et.al. */ public interface FunctionAddressResolver { /** * Resolves the name of the function bound to the method and returns the address. + *

+ * Implementation shall ensure {@link SecurityUtil#checkLinkPermission(String)} is performed. + *

+ * @throws SecurityException if user is not granted access for the library set. */ - public long resolve(String name, DynamicLookupHelper lookup); + public long resolve(String name, DynamicLookupHelper lookup) throws SecurityException; } diff --git a/src/java/com/jogamp/gluegen/runtime/ProcAddressTable.java b/src/java/com/jogamp/gluegen/runtime/ProcAddressTable.java index d910f7b..03ed5c1 100644 --- a/src/java/com/jogamp/gluegen/runtime/ProcAddressTable.java +++ b/src/java/com/jogamp/gluegen/runtime/ProcAddressTable.java @@ -167,7 +167,6 @@ public abstract class ProcAddressTable { * @throws SecurityException if user is not granted access for all libraries. */ public void initEntry(final String name, final DynamicLookupHelper lookup) throws SecurityException, IllegalArgumentException { - SecurityUtil.checkAllLinkPermission(); final Field addressField = fieldForFunction(name); addressField.setAccessible(true); setEntry(addressField, name, lookup); @@ -176,7 +175,7 @@ public abstract class ProcAddressTable { private final void setEntry(final Field addressField, final String funcName, final DynamicLookupHelper lookup) throws SecurityException { try { assert (addressField.getType() == Long.TYPE); - final long newProcAddress = resolver.resolve(funcName, lookup); + final long newProcAddress = resolver.resolve(funcName, lookup); // issues SecurityUtil.checkLinkPermission(String) addressField.setLong(this, newProcAddress); if (DEBUG) { getDebugOutStream().println(" " + addressField.getName() + " -> 0x" + Long.toHexString(newProcAddress)); @@ -345,7 +344,7 @@ public abstract class ProcAddressTable { private static class One2OneResolver implements FunctionAddressResolver { @Override - public long resolve(final String name, final DynamicLookupHelper lookup) { + public long resolve(final String name, final DynamicLookupHelper lookup) throws SecurityException { return lookup.dynamicLookupFunction(name); } } -- cgit v1.2.3