diff options
author | 2018-08-30 12:50:27 -0700 | |
---|---|---|
committer | 2018-08-30 12:50:27 -0700 | |
commit | bbbcb535a9116b87c73f9fbdb74d6cfd74d8c026 (patch) | |
tree | fa857b9083dc78006f41655b0fcabac43f44a444 /openjdkjvmti/OpenjdkJvmTi.cc | |
parent | 134380d7c70d95962ed818458185e608ad17ff08 (diff) |
Implement IterateOverInstances JVMTI function
This JVMTI function can be useful since it allows one to easily
iterate over all instances of a class, including subclasses.
Bug: 32635074
Test: ./test.py --host
Change-Id: I31c3b54ca599964c64aa31fbf666253e9b8000c4
Diffstat (limited to 'openjdkjvmti/OpenjdkJvmTi.cc')
-rw-r--r-- | openjdkjvmti/OpenjdkJvmTi.cc | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/openjdkjvmti/OpenjdkJvmTi.cc b/openjdkjvmti/OpenjdkJvmTi.cc index 59f61e2ee4..3213bbe91a 100644 --- a/openjdkjvmti/OpenjdkJvmTi.cc +++ b/openjdkjvmti/OpenjdkJvmTi.cc @@ -506,13 +506,15 @@ class JvmtiFunctions { static jvmtiError IterateOverInstancesOfClass( jvmtiEnv* env, - jclass klass ATTRIBUTE_UNUSED, - jvmtiHeapObjectFilter object_filter ATTRIBUTE_UNUSED, - jvmtiHeapObjectCallback heap_object_callback ATTRIBUTE_UNUSED, - const void* user_data ATTRIBUTE_UNUSED) { + jclass klass, + jvmtiHeapObjectFilter object_filter, + jvmtiHeapObjectCallback heap_object_callback, + const void* user_data) { ENSURE_VALID_ENV(env); ENSURE_HAS_CAP(env, can_tag_objects); - return ERR(NOT_IMPLEMENTED); + HeapUtil heap_util(ArtJvmTiEnv::AsArtJvmTiEnv(env)->object_tag_table.get()); + return heap_util.IterateOverInstancesOfClass( + env, klass, object_filter, heap_object_callback, user_data); } static jvmtiError GetLocalObject(jvmtiEnv* env, |