summaryrefslogtreecommitdiff
path: root/runtime/class_linker.h
diff options
context:
space:
mode:
author Nicolas Geoffray <ngeoffray@google.com> 2019-09-18 06:11:22 +0000
committer Nicolas Geoffray <ngeoffray@google.com> 2019-09-18 06:12:13 +0000
commit5a2301d897294ff4ee6de71f459dc2566dc3fa1a (patch)
tree2bd06ab3f463734994b3d251f6115514520dbb3f /runtime/class_linker.h
parent4eb6eb40e88214fcc874d93e75660cb580cb4d58 (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/class_linker.h')
-rw-r--r--runtime/class_linker.h62
1 files changed, 29 insertions, 33 deletions
diff --git a/runtime/class_linker.h b/runtime/class_linker.h
index 792f7b798a..dd9f56fd90 100644
--- a/runtime/class_linker.h
+++ b/runtime/class_linker.h
@@ -20,7 +20,6 @@
#include <list>
#include <set>
#include <string>
-#include <type_traits>
#include <unordered_map>
#include <unordered_set>
#include <utility>
@@ -480,38 +479,6 @@ class ClassLinker {
LinearAlloc* allocator,
size_t length);
- // Convenience AllocClass() overload that uses mirror::Class::InitializeClassVisitor
- // for the class initialization and uses the `java_lang_Class` from class roots
- // instead of an explicit argument.
- ObjPtr<mirror::Class> AllocClass(Thread* self, uint32_t class_size)
- REQUIRES_SHARED(Locks::mutator_lock_)
- REQUIRES(!Roles::uninterruptible_);
-
- // Setup the classloader, class def index, type idx so that we can insert this class in the class
- // table.
- void SetupClass(const DexFile& dex_file,
- const dex::ClassDef& dex_class_def,
- Handle<mirror::Class> klass,
- ObjPtr<mirror::ClassLoader> class_loader)
- REQUIRES_SHARED(Locks::mutator_lock_);
-
- void LoadClass(Thread* self,
- const DexFile& dex_file,
- const dex::ClassDef& dex_class_def,
- Handle<mirror::Class> klass)
- REQUIRES_SHARED(Locks::mutator_lock_);
-
- // Link the class and place it into the class-table using the given descriptor. NB if the
- // descriptor is null the class will not be placed in any class-table. This is useful implementing
- // obsolete classes and should not be used otherwise.
- bool LinkClass(Thread* self,
- const char* descriptor,
- Handle<mirror::Class> klass,
- Handle<mirror::ObjectArray<mirror::Class>> interfaces,
- MutableHandle<mirror::Class>* h_new_class_out)
- REQUIRES_SHARED(Locks::mutator_lock_)
- REQUIRES(!Locks::classlinker_classes_lock_);
-
ObjPtr<mirror::PointerArray> AllocPointerArray(Thread* self, size_t length)
REQUIRES_SHARED(Locks::mutator_lock_)
REQUIRES(!Roles::uninterruptible_);
@@ -862,6 +829,13 @@ class ClassLinker {
REQUIRES_SHARED(Locks::mutator_lock_)
REQUIRES(!Roles::uninterruptible_);
+ // Convenience AllocClass() overload that uses mirror::Class::InitializeClassVisitor
+ // for the class initialization and uses the `java_lang_Class` from class roots
+ // instead of an explicit argument.
+ ObjPtr<mirror::Class> AllocClass(Thread* self, uint32_t class_size)
+ REQUIRES_SHARED(Locks::mutator_lock_)
+ REQUIRES(!Roles::uninterruptible_);
+
// Allocate a primitive array class and store it in appropriate class root.
void AllocPrimitiveArrayClass(Thread* self,
ClassRoot primitive_root,
@@ -915,6 +889,20 @@ class ClassLinker {
uint32_t SizeOfClassWithoutEmbeddedTables(const DexFile& dex_file,
const dex::ClassDef& dex_class_def);
+ // Setup the classloader, class def index, type idx so that we can insert this class in the class
+ // table.
+ void SetupClass(const DexFile& dex_file,
+ const dex::ClassDef& dex_class_def,
+ Handle<mirror::Class> klass,
+ ObjPtr<mirror::ClassLoader> class_loader)
+ REQUIRES_SHARED(Locks::mutator_lock_);
+
+ void LoadClass(Thread* self,
+ const DexFile& dex_file,
+ const dex::ClassDef& dex_class_def,
+ Handle<mirror::Class> klass)
+ REQUIRES_SHARED(Locks::mutator_lock_);
+
void LoadField(const ClassAccessor::Field& field, Handle<mirror::Class> klass, ArtField* dst)
REQUIRES_SHARED(Locks::mutator_lock_);
@@ -1061,6 +1049,14 @@ class ClassLinker {
ObjPtr<mirror::Class> klass2)
REQUIRES_SHARED(Locks::mutator_lock_);
+ bool LinkClass(Thread* self,
+ const char* descriptor,
+ Handle<mirror::Class> klass,
+ Handle<mirror::ObjectArray<mirror::Class>> interfaces,
+ MutableHandle<mirror::Class>* h_new_class_out)
+ REQUIRES_SHARED(Locks::mutator_lock_)
+ REQUIRES(!Locks::classlinker_classes_lock_);
+
bool LinkSuperClass(Handle<mirror::Class> klass)
REQUIRES_SHARED(Locks::mutator_lock_);