summaryrefslogtreecommitdiff
path: root/runtime/native/java_lang_Class.cc
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/native/java_lang_Class.cc')
-rw-r--r--runtime/native/java_lang_Class.cc90
1 files changed, 2 insertions, 88 deletions
diff --git a/runtime/native/java_lang_Class.cc b/runtime/native/java_lang_Class.cc
index 4516d1ba9a..4967f9eebe 100644
--- a/runtime/native/java_lang_Class.cc
+++ b/runtime/native/java_lang_Class.cc
@@ -218,10 +218,6 @@ static jobjectArray Class_getInterfacesInternal(JNIEnv* env, jobject javaThis) {
ScopedFastNativeObjectAccess soa(env);
StackHandleScope<1> hs(soa.Self());
Handle<mirror::Class> klass = hs.NewHandle(DecodeClass(soa, javaThis));
- if (klass->IsObsoleteObject()) {
- ThrowRuntimeException("Obsolete Object!");
- return nullptr;
- }
if (klass->IsProxyClass()) {
StackHandleScope<1> hs2(soa.Self());
@@ -266,10 +262,6 @@ static ObjPtr<mirror::ObjectArray<mirror::Field>> GetDeclaredFields(
ObjPtr<mirror::Class> klass,
bool public_only,
bool force_resolve) REQUIRES_SHARED(Locks::mutator_lock_) {
- if (UNLIKELY(klass->IsObsoleteObject())) {
- ThrowRuntimeException("Obsolete Object!");
- return nullptr;
- }
StackHandleScope<1> hs(self);
IterationRange<StrideIterator<ArtField>> ifields = klass->GetIFields();
IterationRange<StrideIterator<ArtField>> sfields = klass->GetSFields();
@@ -394,10 +386,6 @@ ALWAYS_INLINE static inline ObjPtr<mirror::Field> GetDeclaredField(Thread* self,
ObjPtr<mirror::Class> c,
ObjPtr<mirror::String> name)
REQUIRES_SHARED(Locks::mutator_lock_) {
- if (UNLIKELY(c->IsObsoleteObject())) {
- ThrowRuntimeException("Obsolete Object!");
- return nullptr;
- }
ArtField* art_field = FindFieldByName(name, c->GetIFieldsPtr());
if (art_field != nullptr) {
return mirror::Field::CreateFromArtField<kRuntimePointerSize>(self, art_field, true);
@@ -416,10 +404,6 @@ static ObjPtr<mirror::Field> GetPublicFieldRecursive(
DCHECK(name != nullptr);
DCHECK(self != nullptr);
- if (UNLIKELY(clazz->IsObsoleteObject())) {
- ThrowRuntimeException("Obsolete Object!");
- return nullptr;
- }
StackHandleScope<2> hs(self);
MutableHandle<mirror::Class> h_clazz(hs.NewHandle(clazz));
Handle<mirror::String> h_name(hs.NewHandle(name));
@@ -517,15 +501,10 @@ static jobject Class_getDeclaredConstructorInternal(
DCHECK(!Runtime::Current()->IsActiveTransaction());
StackHandleScope<1> hs(soa.Self());
- ObjPtr<mirror::Class> klass = DecodeClass(soa, javaThis);
- if (UNLIKELY(klass->IsObsoleteObject())) {
- ThrowRuntimeException("Obsolete Object!");
- return nullptr;
- }
Handle<mirror::Constructor> result = hs.NewHandle(
mirror::Class::GetDeclaredConstructorInternal<kRuntimePointerSize, false>(
soa.Self(),
- klass,
+ DecodeClass(soa, javaThis),
soa.Decode<mirror::ObjectArray<mirror::Class>>(args)));
if (result == nullptr || ShouldDenyAccessToMember(result->GetArtMethod(), soa.Self())) {
return nullptr;
@@ -550,10 +529,6 @@ static jobjectArray Class_getDeclaredConstructorsInternal(
bool public_only = (publicOnly != JNI_FALSE);
hiddenapi::AccessContext hiddenapi_context = GetReflectionCaller(soa.Self());
Handle<mirror::Class> h_klass = hs.NewHandle(DecodeClass(soa, javaThis));
- if (UNLIKELY(h_klass->IsObsoleteObject())) {
- ThrowRuntimeException("Obsolete Object!");
- return nullptr;
- }
size_t constructor_count = 0;
// Two pass approach for speed.
for (auto& m : h_klass->GetDirectMethods(kRuntimePointerSize)) {
@@ -588,15 +563,10 @@ static jobject Class_getDeclaredMethodInternal(JNIEnv* env, jobject javaThis,
StackHandleScope<1> hs(soa.Self());
DCHECK_EQ(Runtime::Current()->GetClassLinker()->GetImagePointerSize(), kRuntimePointerSize);
DCHECK(!Runtime::Current()->IsActiveTransaction());
- ObjPtr<mirror::Class> klass = DecodeClass(soa, javaThis);
- if (UNLIKELY(klass->IsObsoleteObject())) {
- ThrowRuntimeException("Obsolete Object!");
- return nullptr;
- }
Handle<mirror::Method> result = hs.NewHandle(
mirror::Class::GetDeclaredMethodInternal<kRuntimePointerSize, false>(
soa.Self(),
- klass,
+ DecodeClass(soa, javaThis),
soa.Decode<mirror::String>(name),
soa.Decode<mirror::ObjectArray<mirror::Class>>(args),
GetHiddenapiAccessContextFunction(soa.Self())));
@@ -615,10 +585,6 @@ static jobjectArray Class_getDeclaredMethodsUnchecked(JNIEnv* env, jobject javaT
bool public_only = (publicOnly != JNI_FALSE);
Handle<mirror::Class> klass = hs.NewHandle(DecodeClass(soa, javaThis));
- if (klass->IsObsoleteObject()) {
- ThrowRuntimeException("Obsolete Object!");
- return nullptr;
- }
size_t num_methods = 0;
for (ArtMethod& m : klass->GetDeclaredMethods(kRuntimePointerSize)) {
uint32_t modifiers = m.GetAccessFlags();
@@ -657,10 +623,6 @@ static jobject Class_getDeclaredAnnotation(JNIEnv* env, jobject javaThis, jclass
ScopedFastNativeObjectAccess soa(env);
StackHandleScope<2> hs(soa.Self());
Handle<mirror::Class> klass(hs.NewHandle(DecodeClass(soa, javaThis)));
- if (klass->IsObsoleteObject()) {
- ThrowRuntimeException("Obsolete Object!");
- return nullptr;
- }
// Handle public contract to throw NPE if the "annotationClass" argument was null.
if (UNLIKELY(annotationClass == nullptr)) {
@@ -680,10 +642,6 @@ static jobjectArray Class_getDeclaredAnnotations(JNIEnv* env, jobject javaThis)
ScopedFastNativeObjectAccess soa(env);
StackHandleScope<1> hs(soa.Self());
Handle<mirror::Class> klass(hs.NewHandle(DecodeClass(soa, javaThis)));
- if (klass->IsObsoleteObject()) {
- ThrowRuntimeException("Obsolete Object!");
- return nullptr;
- }
if (klass->IsProxyClass() || klass->GetDexCache() == nullptr) {
// Return an empty array instead of a null pointer.
ObjPtr<mirror::Class> annotation_array_class =
@@ -701,10 +659,6 @@ static jobjectArray Class_getDeclaredClasses(JNIEnv* env, jobject javaThis) {
ScopedFastNativeObjectAccess soa(env);
StackHandleScope<1> hs(soa.Self());
Handle<mirror::Class> klass(hs.NewHandle(DecodeClass(soa, javaThis)));
- if (klass->IsObsoleteObject()) {
- ThrowRuntimeException("Obsolete Object!");
- return nullptr;
- }
ObjPtr<mirror::ObjectArray<mirror::Class>> classes = nullptr;
if (!klass->IsProxyClass() && klass->GetDexCache() != nullptr) {
classes = annotations::GetDeclaredClasses(klass);
@@ -728,10 +682,6 @@ static jclass Class_getEnclosingClass(JNIEnv* env, jobject javaThis) {
ScopedFastNativeObjectAccess soa(env);
StackHandleScope<1> hs(soa.Self());
Handle<mirror::Class> klass(hs.NewHandle(DecodeClass(soa, javaThis)));
- if (klass->IsObsoleteObject()) {
- ThrowRuntimeException("Obsolete Object!");
- return nullptr;
- }
if (klass->IsProxyClass() || klass->GetDexCache() == nullptr) {
return nullptr;
}
@@ -742,10 +692,6 @@ static jobject Class_getEnclosingConstructorNative(JNIEnv* env, jobject javaThis
ScopedFastNativeObjectAccess soa(env);
StackHandleScope<1> hs(soa.Self());
Handle<mirror::Class> klass(hs.NewHandle(DecodeClass(soa, javaThis)));
- if (klass->IsObsoleteObject()) {
- ThrowRuntimeException("Obsolete Object!");
- return nullptr;
- }
if (klass->IsProxyClass() || klass->GetDexCache() == nullptr) {
return nullptr;
}
@@ -762,10 +708,6 @@ static jobject Class_getEnclosingMethodNative(JNIEnv* env, jobject javaThis) {
ScopedFastNativeObjectAccess soa(env);
StackHandleScope<1> hs(soa.Self());
Handle<mirror::Class> klass(hs.NewHandle(DecodeClass(soa, javaThis)));
- if (klass->IsObsoleteObject()) {
- ThrowRuntimeException("Obsolete Object!");
- return nullptr;
- }
if (klass->IsProxyClass() || klass->GetDexCache() == nullptr) {
return nullptr;
}
@@ -782,10 +724,6 @@ static jint Class_getInnerClassFlags(JNIEnv* env, jobject javaThis, jint default
ScopedFastNativeObjectAccess soa(env);
StackHandleScope<1> hs(soa.Self());
Handle<mirror::Class> klass(hs.NewHandle(DecodeClass(soa, javaThis)));
- if (klass->IsObsoleteObject()) {
- ThrowRuntimeException("Obsolete Object!");
- return 0;
- }
return mirror::Class::GetInnerClassFlags(klass, defaultValue);
}
@@ -793,10 +731,6 @@ static jstring Class_getInnerClassName(JNIEnv* env, jobject javaThis) {
ScopedFastNativeObjectAccess soa(env);
StackHandleScope<1> hs(soa.Self());
Handle<mirror::Class> klass(hs.NewHandle(DecodeClass(soa, javaThis)));
- if (klass->IsObsoleteObject()) {
- ThrowRuntimeException("Obsolete Object!");
- return nullptr;
- }
if (klass->IsProxyClass() || klass->GetDexCache() == nullptr) {
return nullptr;
}
@@ -811,10 +745,6 @@ static jobjectArray Class_getSignatureAnnotation(JNIEnv* env, jobject javaThis)
ScopedFastNativeObjectAccess soa(env);
StackHandleScope<1> hs(soa.Self());
Handle<mirror::Class> klass(hs.NewHandle(DecodeClass(soa, javaThis)));
- if (klass->IsObsoleteObject()) {
- ThrowRuntimeException("Obsolete Object!");
- return nullptr;
- }
if (klass->IsProxyClass() || klass->GetDexCache() == nullptr) {
return nullptr;
}
@@ -826,10 +756,6 @@ static jboolean Class_isAnonymousClass(JNIEnv* env, jobject javaThis) {
ScopedFastNativeObjectAccess soa(env);
StackHandleScope<1> hs(soa.Self());
Handle<mirror::Class> klass(hs.NewHandle(DecodeClass(soa, javaThis)));
- if (klass->IsObsoleteObject()) {
- ThrowRuntimeException("Obsolete Object!");
- return 0;
- }
if (klass->IsProxyClass() || klass->GetDexCache() == nullptr) {
return false;
}
@@ -845,10 +771,6 @@ static jboolean Class_isDeclaredAnnotationPresent(JNIEnv* env, jobject javaThis,
ScopedFastNativeObjectAccess soa(env);
StackHandleScope<2> hs(soa.Self());
Handle<mirror::Class> klass(hs.NewHandle(DecodeClass(soa, javaThis)));
- if (klass->IsObsoleteObject()) {
- ThrowRuntimeException("Obsolete Object!");
- return false;
- }
if (klass->IsProxyClass() || klass->GetDexCache() == nullptr) {
return false;
}
@@ -860,10 +782,6 @@ static jclass Class_getDeclaringClass(JNIEnv* env, jobject javaThis) {
ScopedFastNativeObjectAccess soa(env);
StackHandleScope<1> hs(soa.Self());
Handle<mirror::Class> klass(hs.NewHandle(DecodeClass(soa, javaThis)));
- if (klass->IsObsoleteObject()) {
- ThrowRuntimeException("Obsolete Object!");
- return nullptr;
- }
if (klass->IsProxyClass() || klass->GetDexCache() == nullptr) {
return nullptr;
}
@@ -878,10 +796,6 @@ static jobject Class_newInstance(JNIEnv* env, jobject javaThis) {
ScopedFastNativeObjectAccess soa(env);
StackHandleScope<4> hs(soa.Self());
Handle<mirror::Class> klass = hs.NewHandle(DecodeClass(soa, javaThis));
- if (klass->IsObsoleteObject()) {
- ThrowRuntimeException("Obsolete Object!");
- return nullptr;
- }
if (UNLIKELY(klass->GetPrimitiveType() != 0 || klass->IsInterface() || klass->IsArrayClass() ||
klass->IsAbstract())) {
soa.Self()->ThrowNewExceptionF("Ljava/lang/InstantiationException;",