fixed bugs, memory leaks, etc
This commit is contained in:
1 parent
aa4f6b6ddc
commit
c3f8f23c1d
124 files changed
+1060
-420
No files matched your search
@@ -19,21 +19,20 @@ public abstract class ReflectionBase {
|
||||
private static final Map RESOLVED_METHODS = new ConcurrentHashMap();
|
||||
|
||||
public static AccessibleObject forceAccessible(AccessibleObject member) {
|
||||
if (UNSAFE == null) {
|
||||
try {
|
||||
member.setAccessible(true);
|
||||
return member;
|
||||
} else {
|
||||
} catch (Throwable accessError) {
|
||||
if (UNSAFE == null) {
|
||||
throw accessError;
|
||||
}
|
||||
|
||||
try {
|
||||
UNSAFE.putBoolean(member, 12L, true);
|
||||
return member;
|
||||
} catch (Throwable unsafeError) {
|
||||
try {
|
||||
member.setAccessible(true);
|
||||
} catch (Throwable ignored) {
|
||||
}
|
||||
|
||||
return member;
|
||||
} catch (Throwable ignored) {
|
||||
}
|
||||
|
||||
return member;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -215,7 +214,7 @@ public abstract class ReflectionBase {
|
||||
|
||||
char typeChar = descriptor.charAt(index);
|
||||
if (typeChar == 'L') {
|
||||
Class elementClass = Class.forName(descriptor.substring(index + 1, descriptor.indexOf(59, index)).replace('/', '.'));
|
||||
Class elementClass = Class.forName(descriptor.substring(index + 1, descriptor.indexOf(59, index)).replace('/', '.'), false, classLoader);
|
||||
return toArrayType(elementClass, arrayDepth);
|
||||
} else {
|
||||
return toArrayType(primitiveForDescriptor(Integer.valueOf(typeChar)), arrayDepth);
|
||||
|
||||
Reference in new issue
Block a user