summaryrefslogtreecommitdiff
path: root/openjdkjvmti/ti_class_loader.h
diff options
context:
space:
mode:
author Alex Light <allight@google.com> 2018-02-21 21:01:44 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2018-02-21 21:01:44 +0000
commitf13343eb8b2738e2812fd7bd9d5592f529e93c21 (patch)
treea5fcc3a5e22b917cc18dde99a0411bcd5d9f1aec /openjdkjvmti/ti_class_loader.h
parentea81a71bdad720ba494461d4e8f6d21e6a0ac4f4 (diff)
parentc758875461cca47d1b342c3c56a218a704b04365 (diff)
Merge "Add get_class_loader_class_descriptors JVMTI extension method"
Diffstat (limited to 'openjdkjvmti/ti_class_loader.h')
-rw-r--r--openjdkjvmti/ti_class_loader.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/openjdkjvmti/ti_class_loader.h b/openjdkjvmti/ti_class_loader.h
index ceb7b331de..5c9497b0b5 100644
--- a/openjdkjvmti/ti_class_loader.h
+++ b/openjdkjvmti/ti_class_loader.h
@@ -82,6 +82,14 @@ class ClassLoaderHelper {
art::Thread* self, art::Handle<art::mirror::ClassLoader> loader)
REQUIRES_SHARED(art::Locks::mutator_lock_);
+ // Calls visitor on each java.lang.DexFile associated with the given loader. The visitor should
+ // return true to continue on to the next DexFile or false to stop iterating.
+ template<typename Visitor>
+ static inline void VisitDexFileObjects(art::Thread* self,
+ art::Handle<art::mirror::ClassLoader> loader,
+ const Visitor& visitor)
+ REQUIRES_SHARED(art::Locks::mutator_lock_);
+
static art::ObjPtr<art::mirror::LongArray> GetDexFileCookie(
art::Handle<art::mirror::Object> java_dex_file) REQUIRES_SHARED(art::Locks::mutator_lock_);
@@ -93,6 +101,11 @@ class ClassLoaderHelper {
static void UpdateJavaDexFile(art::ObjPtr<art::mirror::Object> java_dex_file,
art::ObjPtr<art::mirror::LongArray> new_cookie)
REQUIRES(art::Roles::uninterruptible_) REQUIRES_SHARED(art::Locks::mutator_lock_);
+
+ private:
+ static art::ObjPtr<art::mirror::ObjectArray<art::mirror::Object>> GetDexElementList(
+ art::Thread* self, art::Handle<art::mirror::ClassLoader> loader)
+ REQUIRES_SHARED(art::Locks::mutator_lock_);
};
} // namespace openjdkjvmti