846 int insts_size = code->insts_size(); |
846 int insts_size = code->insts_size(); |
847 |
847 |
848 ThreadToNativeFromVM ttn(thread); |
848 ThreadToNativeFromVM ttn(thread); |
849 jclass clazz = env->FindClass(vmSymbols::java_lang_Object()->as_C_string()); |
849 jclass clazz = env->FindClass(vmSymbols::java_lang_Object()->as_C_string()); |
850 CHECK_JNI_EXCEPTION_(env, NULL); |
850 CHECK_JNI_EXCEPTION_(env, NULL); |
851 result = env->NewObjectArray(2, clazz, NULL); |
851 result = env->NewObjectArray(3, clazz, NULL); |
852 if (result == NULL) { |
852 if (result == NULL) { |
853 return result; |
853 return result; |
854 } |
854 } |
855 |
855 |
856 jobject obj = integerBox(thread, env, code->comp_level()); |
856 jobject level = integerBox(thread, env, code->comp_level()); |
857 CHECK_JNI_EXCEPTION_(env, NULL); |
857 CHECK_JNI_EXCEPTION_(env, NULL); |
858 env->SetObjectArrayElement(result, 0, obj); |
858 env->SetObjectArrayElement(result, 0, level); |
|
859 |
|
860 jobject id = integerBox(thread, env, code->compile_id()); |
|
861 CHECK_JNI_EXCEPTION_(env, NULL); |
|
862 env->SetObjectArrayElement(result, 1, id); |
859 |
863 |
860 jbyteArray insts = env->NewByteArray(insts_size); |
864 jbyteArray insts = env->NewByteArray(insts_size); |
861 CHECK_JNI_EXCEPTION_(env, NULL); |
865 CHECK_JNI_EXCEPTION_(env, NULL); |
862 env->SetByteArrayRegion(insts, 0, insts_size, (jbyte*) code->insts_begin()); |
866 env->SetByteArrayRegion(insts, 0, insts_size, (jbyte*) code->insts_begin()); |
863 env->SetObjectArrayElement(result, 1, insts); |
867 env->SetObjectArrayElement(result, 2, insts); |
864 |
868 |
865 return result; |
869 return result; |
866 WB_END |
870 WB_END |
867 |
871 |
868 |
872 |