jvmti_rs/wrapper/jvmtifns/
heap_1_0.rs

1use std::ffi::c_void;
2
3use crate::{errors::*, JVMTIEnv, objects::*, sys::*};
4
5impl<'a> JVMTIEnv<'a> {
6    pub fn iterate_over_objects_reachable_from_object(&self, object: &JObject, callback: jvmtiObjectReferenceCallback, user_data: *const c_void) -> Result<()> {
7        jvmti_call!(self.jvmti_raw(), IterateOverObjectsReachableFromObject,
8            object.into_inner(),
9            callback,
10            user_data
11        )
12    }
13
14    pub fn iterate_over_reachable_objects(&self, heap_root_callback: jvmtiHeapRootCallback,
15                                          stack_ref_callback: jvmtiStackReferenceCallback,
16                                          object_ref_callback: jvmtiObjectReferenceCallback,
17                                          user_data: *const c_void,
18    ) -> Result<()> {
19        jvmti_call!(self.jvmti_raw(), IterateOverReachableObjects,
20            heap_root_callback,
21            stack_ref_callback,
22            object_ref_callback,
23            user_data
24        )
25    }
26
27    pub fn iterate_over_heap(&self, object_filter: jvmtiHeapObjectFilter,
28                             heap_object_callback: jvmtiHeapObjectCallback,
29                             user_data: *const c_void,
30    ) -> Result<()> {
31        jvmti_call!(self.jvmti_raw(), IterateOverHeap,
32            object_filter,
33            heap_object_callback,
34            user_data
35        )
36    }
37}