From 395008a0b89ea0d8d4ef08e0041a96bc468f5153 Mon Sep 17 00:00:00 2001 From: Tumi Date: Mon, 23 Dec 2013 02:09:57 +0100 Subject: [PATCH] Update AccessClassLoader.java Minor performance optimization (avoid call to SecurityManager.checkPermission() inside Method.setAccessible() if the Methos is already accesible) --- src/com/esotericsoftware/reflectasm/AccessClassLoader.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/com/esotericsoftware/reflectasm/AccessClassLoader.java b/src/com/esotericsoftware/reflectasm/AccessClassLoader.java index 8b0e0fc..9a5d62f 100644 --- a/src/com/esotericsoftware/reflectasm/AccessClassLoader.java +++ b/src/com/esotericsoftware/reflectasm/AccessClassLoader.java @@ -1,4 +1,3 @@ - package com.esotericsoftware.reflectasm; import java.lang.reflect.Method; @@ -49,7 +48,7 @@ class AccessClassLoader extends ClassLoader { // Attempt to load the access class in the same loader, which makes protected and default access members accessible. Method method = ClassLoader.class.getDeclaredMethod("defineClass", new Class[] {String.class, byte[].class, int.class, int.class, ProtectionDomain.class}); - method.setAccessible(true); + if (!method.isAccessible()) method.setAccessible(true); return (Class)method.invoke(getParent(), new Object[] {name, bytes, Integer.valueOf(0), Integer.valueOf(bytes.length), getClass().getProtectionDomain()}); } catch (Exception ignored) {