summaryrefslogtreecommitdiff
path: root/openjdkjvmti/ti_class_loader.h
diff options
context:
space:
mode:
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