diff options
author | 2019-09-18 06:11:22 +0000 | |
---|---|---|
committer | 2019-09-18 06:12:13 +0000 | |
commit | 5a2301d897294ff4ee6de71f459dc2566dc3fa1a (patch) | |
tree | 2bd06ab3f463734994b3d251f6115514520dbb3f /runtime/native/java_lang_Class.cc | |
parent | 4eb6eb40e88214fcc874d93e75660cb580cb4d58 (diff) |
Revert "Basic structural redefinition support"
This reverts commit c971eafeff43e4e26959a6e86b62ab0a8f1a6e1c.
Bug: 134162467
Reason for revert: Breaks on redefine-stress
Change-Id: I4e38da23d65b5b34b26b5ab537a3583328e078a4
Diffstat (limited to 'runtime/native/java_lang_Class.cc')
-rw-r--r-- | runtime/native/java_lang_Class.cc | 90 |
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;", |