diff options
author | 2016-10-11 19:55:37 -0700 | |
---|---|---|
committer | 2016-10-12 11:22:38 -0700 | |
commit | e54d992ee75c0924c9a8d4e2f77dacf44c8c651b (patch) | |
tree | b3bbf220dcd67c5496110a7096d9349b184411f6 /runtime/openjdkjvmti/heap.h | |
parent | f0ab2ec6008bbd495e59bb9bf81ac399d864f38b (diff) |
ART: Add heap iteration callback
Add callback support for heap iteration. Visiting of fields will
be done in a follow-up.
Add a test.
Bug: 31385354
Test: m test-art-host-run-test-906-iterate-heap
Test: m ART_TEST_GC_STRESS=true ART_TEST_GC_VERIFY=true test-art-host-run-test-906-iterate-heap
Change-Id: I7bcf6751e6df4ef58756ba97701050b2ff5eb07b
Diffstat (limited to 'runtime/openjdkjvmti/heap.h')
-rw-r--r-- | runtime/openjdkjvmti/heap.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/runtime/openjdkjvmti/heap.h b/runtime/openjdkjvmti/heap.h new file mode 100644 index 0000000000..fb9a2164ae --- /dev/null +++ b/runtime/openjdkjvmti/heap.h @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2016 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef ART_RUNTIME_OPENJDKJVMTI_HEAP_H_ +#define ART_RUNTIME_OPENJDKJVMTI_HEAP_H_ + +#include "jvmti.h" + +namespace openjdkjvmti { + +class ObjectTagTable; + +class HeapUtil { + public: + explicit HeapUtil(ObjectTagTable* tags) : tags_(tags) { + } + + jvmtiError IterateThroughHeap(jvmtiEnv* env, + jint heap_filter, + jclass klass, + const jvmtiHeapCallbacks* callbacks, + const void* user_data); + + ObjectTagTable* GetTags() { + return tags_; + } + + private: + ObjectTagTable* tags_; +}; + +} // namespace openjdkjvmti + +#endif // ART_RUNTIME_OPENJDKJVMTI_HEAP_H_ |