< prev index next >
src/share/vm/prims/whitebox.cpp
Print this page
*** 1026,1046 ****
struct CodeBlobStub {
CodeBlobStub(const CodeBlob* blob) :
name(os::strdup(blob->name())),
size(blob->size()),
! blob_type(WhiteBox::get_blob_type(blob)) { }
~CodeBlobStub() { os::free((void*) name); }
const char* const name;
! const int size;
! const int blob_type;
};
static jobjectArray codeBlob2objectArray(JavaThread* thread, JNIEnv* env, CodeBlobStub* cb) {
jclass clazz = env->FindClass(vmSymbols::java_lang_Object()->as_C_string());
CHECK_JNI_EXCEPTION_(env, NULL);
! jobjectArray result = env->NewObjectArray(3, clazz, NULL);
jstring name = env->NewStringUTF(cb->name);
CHECK_JNI_EXCEPTION_(env, NULL);
env->SetObjectArrayElement(result, 0, name);
--- 1026,1048 ----
struct CodeBlobStub {
CodeBlobStub(const CodeBlob* blob) :
name(os::strdup(blob->name())),
size(blob->size()),
! blob_type(WhiteBox::get_blob_type(blob)),
! address((jlong) blob) { }
~CodeBlobStub() { os::free((void*) name); }
const char* const name;
! const jint size;
! const jint blob_type;
! const jlong address;
};
static jobjectArray codeBlob2objectArray(JavaThread* thread, JNIEnv* env, CodeBlobStub* cb) {
jclass clazz = env->FindClass(vmSymbols::java_lang_Object()->as_C_string());
CHECK_JNI_EXCEPTION_(env, NULL);
! jobjectArray result = env->NewObjectArray(4, clazz, NULL);
jstring name = env->NewStringUTF(cb->name);
CHECK_JNI_EXCEPTION_(env, NULL);
env->SetObjectArrayElement(result, 0, name);
*** 1050,1059 ****
--- 1052,1065 ----
obj = integerBox(thread, env, cb->blob_type);
CHECK_JNI_EXCEPTION_(env, NULL);
env->SetObjectArrayElement(result, 2, obj);
+ obj = longBox(thread, env, cb->address);
+ CHECK_JNI_EXCEPTION_(env, NULL);
+ env->SetObjectArrayElement(result, 3, obj);
+
return result;
}
WB_ENTRY(jobjectArray, WB_GetNMethod(JNIEnv* env, jobject o, jobject method, jboolean is_osr))
ResourceMark rm(THREAD);
*** 1090,1102 ****
jobject id = integerBox(thread, env, code->compile_id());
CHECK_JNI_EXCEPTION_(env, NULL);
env->SetObjectArrayElement(result, 3, id);
! jobject address = longBox(thread, env, (jlong) code);
CHECK_JNI_EXCEPTION_(env, NULL);
! env->SetObjectArrayElement(result, 4, address);
return result;
WB_END
CodeBlob* WhiteBox::allocate_code_blob(int size, int blob_type) {
--- 1096,1108 ----
jobject id = integerBox(thread, env, code->compile_id());
CHECK_JNI_EXCEPTION_(env, NULL);
env->SetObjectArrayElement(result, 3, id);
! jobject entry_point = longBox(thread, env, (jlong) code->entry_point());
CHECK_JNI_EXCEPTION_(env, NULL);
! env->SetObjectArrayElement(result, 4, entry_point);
return result;
WB_END
CodeBlob* WhiteBox::allocate_code_blob(int size, int blob_type) {
< prev index next >