summaryrefslogtreecommitdiffstats
path: root/libart
diff options
context:
space:
mode:
authorBrian Carlstrom <bdc@google.com>2013-10-20 23:30:24 -0700
committerBrian Carlstrom <bdc@google.com>2013-11-07 10:42:12 -0800
commit96caa8ec10a5d64d804a9ed3897c9a34c8626239 (patch)
tree22980cf3dd9244e4faa85428c123aeaae4acdb48 /libart
parentf446b650b4d6ac283079ee6ba19678ac32cadbcc (diff)
downloadlibcore-96caa8ec10a5d64d804a9ed3897c9a34c8626239.tar.gz
libcore-96caa8ec10a5d64d804a9ed3897c9a34c8626239.tar.bz2
libcore-96caa8ec10a5d64d804a9ed3897c9a34c8626239.zip
Fix Class.getEnclosingClass for anonymous classes declared in <clinit> methods
(cherry picked from commit b9be313bdc257089534f738ff8e1e5ad4de3d25e) Bug: 11245138 Related bug: https://code.google.com/p/android/issues/detail?id=61003 Change-Id: I5cc1db6ca6628b845409d7a6ea864da5f625fdc3
Diffstat (limited to 'libart')
-rw-r--r--libart/src/main/java/java/lang/Class.java9
1 files changed, 5 insertions, 4 deletions
diff --git a/libart/src/main/java/java/lang/Class.java b/libart/src/main/java/java/lang/Class.java
index d4f5cbd35..eda2b5c9e 100644
--- a/libart/src/main/java/java/lang/Class.java
+++ b/libart/src/main/java/java/lang/Class.java
@@ -958,7 +958,7 @@ public final class Class<T> implements Serializable, AnnotatedElement, GenericDe
if (AnnotationAccess.isAnonymousClass(this)) {
return null;
}
- return AnnotationAccess.getDeclaringClass(this);
+ return AnnotationAccess.getEnclosingClass(this);
}
/**
@@ -973,9 +973,10 @@ public final class Class<T> implements Serializable, AnnotatedElement, GenericDe
return declaringClass;
}
AccessibleObject member = AnnotationAccess.getEnclosingMethodOrConstructor(this);
- return member != null
- ? ((Member) member).getDeclaringClass()
- : null;
+ if (member != null) {
+ return ((Member) member).getDeclaringClass();
+ }
+ return AnnotationAccess.getEnclosingClass(this);
}
/**