74 75 // create/destroy entries 76 JvmtiTagHashmapEntry* create_entry(oop ref, jlong tag); 77 void destroy_entry(JvmtiTagHashmapEntry* entry); 78 79 // returns true if the hashmaps are empty 80 bool is_empty(); 81 82 // return tag for the given environment 83 static JvmtiTagMap* tag_map_for(JvmtiEnv* env); 84 85 // destroy tag map 86 ~JvmtiTagMap(); 87 88 // set/get tag 89 void set_tag(jobject obj, jlong tag); 90 jlong get_tag(jobject obj); 91 92 // deprecated heap iteration functions 93 void iterate_over_heap(jvmtiHeapObjectFilter object_filter, 94 KlassHandle klass, 95 jvmtiHeapObjectCallback heap_object_callback, 96 const void* user_data); 97 98 void iterate_over_reachable_objects(jvmtiHeapRootCallback heap_root_callback, 99 jvmtiStackReferenceCallback stack_ref_callback, 100 jvmtiObjectReferenceCallback object_ref_callback, 101 const void* user_data); 102 103 void iterate_over_objects_reachable_from_object(jobject object, 104 jvmtiObjectReferenceCallback object_reference_callback, 105 const void* user_data); 106 107 108 // advanced (JVMTI 1.1) heap iteration functions 109 void iterate_through_heap(jint heap_filter, 110 KlassHandle klass, 111 const jvmtiHeapCallbacks* callbacks, 112 const void* user_data); 113 114 void follow_references(jint heap_filter, 115 KlassHandle klass, 116 jobject initial_object, 117 const jvmtiHeapCallbacks* callbacks, 118 const void* user_data); 119 120 // get tagged objects 121 jvmtiError get_objects_with_tags(const jlong* tags, jint count, 122 jint* count_ptr, jobject** object_result_ptr, 123 jlong** tag_result_ptr); 124 125 static void weak_oops_do( 126 BoolObjectClosure* is_alive, OopClosure* f) NOT_JVMTI_RETURN; 127 }; 128 129 #endif // SHARE_VM_PRIMS_JVMTITAGMAP_HPP | 74 75 // create/destroy entries 76 JvmtiTagHashmapEntry* create_entry(oop ref, jlong tag); 77 void destroy_entry(JvmtiTagHashmapEntry* entry); 78 79 // returns true if the hashmaps are empty 80 bool is_empty(); 81 82 // return tag for the given environment 83 static JvmtiTagMap* tag_map_for(JvmtiEnv* env); 84 85 // destroy tag map 86 ~JvmtiTagMap(); 87 88 // set/get tag 89 void set_tag(jobject obj, jlong tag); 90 jlong get_tag(jobject obj); 91 92 // deprecated heap iteration functions 93 void iterate_over_heap(jvmtiHeapObjectFilter object_filter, 94 Klass* klass, 95 jvmtiHeapObjectCallback heap_object_callback, 96 const void* user_data); 97 98 void iterate_over_reachable_objects(jvmtiHeapRootCallback heap_root_callback, 99 jvmtiStackReferenceCallback stack_ref_callback, 100 jvmtiObjectReferenceCallback object_ref_callback, 101 const void* user_data); 102 103 void iterate_over_objects_reachable_from_object(jobject object, 104 jvmtiObjectReferenceCallback object_reference_callback, 105 const void* user_data); 106 107 108 // advanced (JVMTI 1.1) heap iteration functions 109 void iterate_through_heap(jint heap_filter, 110 Klass* klass, 111 const jvmtiHeapCallbacks* callbacks, 112 const void* user_data); 113 114 void follow_references(jint heap_filter, 115 Klass* klass, 116 jobject initial_object, 117 const jvmtiHeapCallbacks* callbacks, 118 const void* user_data); 119 120 // get tagged objects 121 jvmtiError get_objects_with_tags(const jlong* tags, jint count, 122 jint* count_ptr, jobject** object_result_ptr, 123 jlong** tag_result_ptr); 124 125 static void weak_oops_do( 126 BoolObjectClosure* is_alive, OopClosure* f) NOT_JVMTI_RETURN; 127 }; 128 129 #endif // SHARE_VM_PRIMS_JVMTITAGMAP_HPP |