Home | History | Annotate | Download | only in 913-heaps

Lines Matching defs:extensions

885 static void FreeExtensionFunctionInfo(jvmtiExtensionFunctionInfo* extensions, jint count) {
887 jvmti_env->Deallocate(reinterpret_cast<unsigned char*>(extensions[i].id));
888 jvmti_env->Deallocate(reinterpret_cast<unsigned char*>(extensions[i].short_description));
889 for (size_t j = 0; j != static_cast<size_t>(extensions[i].param_count); ++j) {
890 jvmti_env->Deallocate(reinterpret_cast<unsigned char*>(extensions[i].params[j].name));
892 jvmti_env->Deallocate(reinterpret_cast<unsigned char*>(extensions[i].params));
893 jvmti_env->Deallocate(reinterpret_cast<unsigned char*>(extensions[i].errors));
900 jvmtiExtensionFunctionInfo* extensions;
901 jvmtiError result = jvmti_env->GetExtensionFunctions(&extension_count, &extensions);
907 if (strcmp("com.android.art.heap.get_object_heap_id", extensions[i].id) == 0) {
909 gGetObjectHeapIdFn = reinterpret_cast<GetObjectHeapId>(extensions[i].func);
911 CHECK_EQ(extensions[i].param_count, 2);
913 CHECK_EQ(strcmp("tag", extensions[i].params[0].name), 0);
914 CHECK_EQ(extensions[i].params[0].base_type, JVMTI_TYPE_JLONG);
915 CHECK_EQ(extensions[i].params[0].kind, JVMTI_KIND_IN);
917 CHECK_EQ(strcmp("heap_id", extensions[i].params[1].name), 0);
918 CHECK_EQ(extensions[i].params[1].base_type, JVMTI_TYPE_JINT);
919 CHECK_EQ(extensions[i].params[1].kind, JVMTI_KIND_OUT);
920 CHECK_EQ(extensions[i].params[1].null_ok, false);
922 CHECK_EQ(extensions[i].error_count, 1);
923 CHECK(extensions[i].errors != nullptr);
924 CHECK(extensions[i].errors[0] == JVMTI_ERROR_NOT_FOUND);
929 if (strcmp("com.android.art.heap.get_heap_name", extensions[i].id) == 0) {
931 gGetHeapNameFn = reinterpret_cast<GetHeapName>(extensions[i].func);
933 CHECK_EQ(extensions[i].param_count, 2);
935 CHECK_EQ(strcmp("heap_id", extensions[i].params[0].name), 0);
936 CHECK_EQ(extensions[i].params[0].base_type, JVMTI_TYPE_JINT);
937 CHECK_EQ(extensions[i].params[0].kind, JVMTI_KIND_IN);
939 CHECK_EQ(strcmp("heap_name", extensions[i].params[1].name), 0);
940 CHECK_EQ(extensions[i].params[1].base_type, JVMTI_TYPE_CCHAR);
941 CHECK_EQ(extensions[i].params[1].kind, JVMTI_KIND_ALLOC_BUF);
942 CHECK_EQ(extensions[i].params[1].null_ok, false);
944 CHECK_EQ(extensions[i].error_count, 1);
945 CHECK(extensions[i].errors != nullptr);
946 CHECK(extensions[i].errors[0] == JVMTI_ERROR_ILLEGAL_ARGUMENT);
949 if (strcmp("com.android.art.heap.iterate_through_heap_ext", extensions[i].id) == 0) {
951 gIterateThroughHeapExt = reinterpret_cast<IterateThroughHeapExt>(extensions[i].func);
953 CHECK_EQ(extensions[i].param_count, 4);
955 CHECK_EQ(strcmp("heap_filter", extensions[i].params[0].name), 0);
956 CHECK_EQ(extensions[i].params[0].base_type, JVMTI_TYPE_JINT);
957 CHECK_EQ(extensions[i].params[0].kind, JVMTI_KIND_IN);
959 CHECK_EQ(strcmp("klass", extensions[i].params[1].name), 0);
960 CHECK_EQ(extensions[i].params[1].base_type, JVMTI_TYPE_JCLASS);
961 CHECK_EQ(extensions[i].params[1].kind, JVMTI_KIND_IN);
962 CHECK_EQ(extensions[i].params[1].null_ok, true);
964 CHECK_EQ(strcmp("callbacks", extensions[i].params[2].name), 0);
965 CHECK_EQ(extensions[i].params[2].base_type, JVMTI_TYPE_CVOID);
966 CHECK_EQ(extensions[i].params[2].kind, JVMTI_KIND_IN_PTR);
967 CHECK_EQ(extensions[i].params[2].null_ok, false);
969 CHECK_EQ(strcmp("user_data", extensions[i].params[3].name), 0);
970 CHECK_EQ(extensions[i].params[3].base_type, JVMTI_TYPE_CVOID);
971 CHECK_EQ(extensions[i].params[3].kind, JVMTI_KIND_IN_PTR);
972 CHECK_EQ(extensions[i].params[3].null_ok, true);
974 CHECK_EQ(extensions[i].error_count, 3);
975 CHECK(extensions[i].errors != nullptr);
976 CHECK(extensions[i].errors[0] == JVMTI_ERROR_MUST_POSSESS_CAPABILITY);
977 CHECK(extensions[i].errors[1] == JVMTI_ERROR_INVALID_CLASS);
978 CHECK(extensions[i].errors[2] == JVMTI_ERROR_NULL_POINTER);
985 FreeExtensionFunctionInfo(extensions, extension_count);