diff options
author | Brian Carlstrom <bdc@google.com> | 2013-10-20 23:30:24 -0700 |
---|---|---|
committer | Brian Carlstrom <bdc@google.com> | 2013-11-07 10:42:12 -0800 |
commit | 96caa8ec10a5d64d804a9ed3897c9a34c8626239 (patch) | |
tree | 22980cf3dd9244e4faa85428c123aeaae4acdb48 /libart | |
parent | f446b650b4d6ac283079ee6ba19678ac32cadbcc (diff) | |
download | libcore-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.java | 9 |
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); } /** |