diff options
author | 2018-02-21 21:01:44 +0000 | |
---|---|---|
committer | 2018-02-21 21:01:44 +0000 | |
commit | f13343eb8b2738e2812fd7bd9d5592f529e93c21 (patch) | |
tree | a5fcc3a5e22b917cc18dde99a0411bcd5d9f1aec /openjdkjvmti/ti_class_loader.h | |
parent | ea81a71bdad720ba494461d4e8f6d21e6a0ac4f4 (diff) | |
parent | c758875461cca47d1b342c3c56a218a704b04365 (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.h | 13 |
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 |