1852 NULL_CHECK(o, JVMTI_ERROR_INVALID_OBJECT);
1853 JvmtiTagMap::tag_map_for(this)->set_tag(object, tag);
1854 return JVMTI_ERROR_NONE;
1855 } /* end SetTag */
1856
1857
1858 // tag_count - pre-checked to be greater than or equal to 0
1859 // tags - pre-checked for NULL
1860 // count_ptr - pre-checked for NULL
1861 // object_result_ptr - NULL is a valid value, must be checked
1862 // tag_result_ptr - NULL is a valid value, must be checked
1863 jvmtiError
1864 JvmtiEnv::GetObjectsWithTags(jint tag_count, const jlong* tags, jint* count_ptr, jobject** object_result_ptr, jlong** tag_result_ptr) {
1865 TraceTime t("GetObjectsWithTags", TRACETIME_LOG(Debug, jvmti, objecttagging));
1866 return JvmtiTagMap::tag_map_for(this)->get_objects_with_tags((jlong*)tags, tag_count, count_ptr, object_result_ptr, tag_result_ptr);
1867 } /* end GetObjectsWithTags */
1868
1869
1870 jvmtiError
1871 JvmtiEnv::ForceGarbageCollection() {
1872 Universe::heap()->collect(GCCause::_jvmti_force_gc);
1873 return JVMTI_ERROR_NONE;
1874 } /* end ForceGarbageCollection */
1875
1876
1877 //
1878 // Heap (1.0) functions
1879 //
1880
1881 // object_reference_callback - pre-checked for NULL
1882 // user_data - NULL is a valid value, must be checked
1883 jvmtiError
1884 JvmtiEnv::IterateOverObjectsReachableFromObject(jobject object, jvmtiObjectReferenceCallback object_reference_callback, const void* user_data) {
1885 oop o = JNIHandles::resolve_external_guard(object);
1886 NULL_CHECK(o, JVMTI_ERROR_INVALID_OBJECT);
1887 JvmtiTagMap::tag_map_for(this)->iterate_over_objects_reachable_from_object(object, object_reference_callback, user_data);
1888 return JVMTI_ERROR_NONE;
1889 } /* end IterateOverObjectsReachableFromObject */
1890
1891
1892 // heap_root_callback - NULL is a valid value, must be checked
|
1852 NULL_CHECK(o, JVMTI_ERROR_INVALID_OBJECT);
1853 JvmtiTagMap::tag_map_for(this)->set_tag(object, tag);
1854 return JVMTI_ERROR_NONE;
1855 } /* end SetTag */
1856
1857
1858 // tag_count - pre-checked to be greater than or equal to 0
1859 // tags - pre-checked for NULL
1860 // count_ptr - pre-checked for NULL
1861 // object_result_ptr - NULL is a valid value, must be checked
1862 // tag_result_ptr - NULL is a valid value, must be checked
1863 jvmtiError
1864 JvmtiEnv::GetObjectsWithTags(jint tag_count, const jlong* tags, jint* count_ptr, jobject** object_result_ptr, jlong** tag_result_ptr) {
1865 TraceTime t("GetObjectsWithTags", TRACETIME_LOG(Debug, jvmti, objecttagging));
1866 return JvmtiTagMap::tag_map_for(this)->get_objects_with_tags((jlong*)tags, tag_count, count_ptr, object_result_ptr, tag_result_ptr);
1867 } /* end GetObjectsWithTags */
1868
1869
1870 jvmtiError
1871 JvmtiEnv::ForceGarbageCollection() {
1872 GC::gc()->heap()->collect(GCCause::_jvmti_force_gc);
1873 return JVMTI_ERROR_NONE;
1874 } /* end ForceGarbageCollection */
1875
1876
1877 //
1878 // Heap (1.0) functions
1879 //
1880
1881 // object_reference_callback - pre-checked for NULL
1882 // user_data - NULL is a valid value, must be checked
1883 jvmtiError
1884 JvmtiEnv::IterateOverObjectsReachableFromObject(jobject object, jvmtiObjectReferenceCallback object_reference_callback, const void* user_data) {
1885 oop o = JNIHandles::resolve_external_guard(object);
1886 NULL_CHECK(o, JVMTI_ERROR_INVALID_OBJECT);
1887 JvmtiTagMap::tag_map_for(this)->iterate_over_objects_reachable_from_object(object, object_reference_callback, user_data);
1888 return JVMTI_ERROR_NONE;
1889 } /* end IterateOverObjectsReachableFromObject */
1890
1891
1892 // heap_root_callback - NULL is a valid value, must be checked
|