From dec2c828773b63807033447af49bdf909b45e8dc Mon Sep 17 00:00:00 2001 From: rbackman Date: Tue, 28 Aug 2012 15:15:29 +0200 Subject: 7093328: JVMTI: jvmtiPrimitiveFieldCallback always report 0's for static primitives Reviewed-by: dholmes, dcubed --- src/share/vm/prims/jvmtiTagMap.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/share/vm/prims') diff --git a/src/share/vm/prims/jvmtiTagMap.cpp b/src/share/vm/prims/jvmtiTagMap.cpp index 228716424..c3e744bd3 100644 --- a/src/share/vm/prims/jvmtiTagMap.cpp +++ b/src/share/vm/prims/jvmtiTagMap.cpp @@ -1135,7 +1135,7 @@ static jint invoke_primitive_field_callback_for_static_fields // get offset and field value int offset = field->field_offset(); - address addr = (address)klass + offset; + address addr = (address)klass->java_mirror() + offset; jvalue value; copy_to_jvalue(&value, addr, value_type); -- cgit v1.2.3 From 055bbd33ac4a074de28db7cae9c9521f0ea963b1 Mon Sep 17 00:00:00 2001 From: minqi Date: Tue, 18 Sep 2012 10:10:43 -0700 Subject: 7191786: retransformClasses() does not pass in LocalVariableTypeTable of a method Summary: JVMTI REtruncformClasses must support LocalVariableTypeTable attribute Reviewed-by: dcubed, dsamersoff, rbackman Contributed-by: serguei.spitsyn@oracle.com --- src/share/vm/prims/jvmtiClassFileReconstituter.cpp | 68 +++++++++++++++++++++- src/share/vm/prims/jvmtiClassFileReconstituter.hpp | 1 + 2 files changed, 66 insertions(+), 3 deletions(-) (limited to 'src/share/vm/prims') diff --git a/src/share/vm/prims/jvmtiClassFileReconstituter.cpp b/src/share/vm/prims/jvmtiClassFileReconstituter.cpp index b37870653..01beff1b4 100644 --- a/src/share/vm/prims/jvmtiClassFileReconstituter.cpp +++ b/src/share/vm/prims/jvmtiClassFileReconstituter.cpp @@ -43,7 +43,7 @@ #ifdef TARGET_ARCH_ppc # include "bytes_ppc.hpp" #endif -// FIXME: add Deprecated, LVTT attributes +// FIXME: add Deprecated attribute // FIXME: fix Synthetic attribute // FIXME: per Serguei, add error return handling for ConstantPool::copy_cpool_bytes() @@ -135,6 +135,7 @@ void JvmtiClassFileReconstituter::write_code_attribute(methodHandle method) { u2 line_num_cnt = 0; int stackmap_len = 0; int local_variable_table_length = 0; + int local_variable_type_table_length = 0; // compute number and length of attributes int attr_count = 0; @@ -171,8 +172,8 @@ void JvmtiClassFileReconstituter::write_code_attribute(methodHandle method) { } if (method->has_localvariable_table()) { local_variable_table_length = method->localvariable_table_length(); - ++attr_count; if (local_variable_table_length != 0) { + ++attr_count; // Compute the size of the local variable table attribute (VM stores raw): // LocalVariableTable_attribute { // u2 attribute_name_index; @@ -186,6 +187,31 @@ void JvmtiClassFileReconstituter::write_code_attribute(methodHandle method) { // u2 index; // } attr_size += 2 + 4 + 2 + local_variable_table_length * (2 + 2 + 2 + 2 + 2); + + // Local variables with generic signatures must have LVTT entries + LocalVariableTableElement *elem = method->localvariable_table_start(); + for (int idx = 0; idx < local_variable_table_length; idx++) { + if (elem[idx].signature_cp_index != 0) { + local_variable_type_table_length++; + } + } + + if (local_variable_type_table_length != 0) { + ++attr_count; + // Compute the size of the local variable type table attribute (VM stores raw): + // LocalVariableTypeTable_attribute { + // u2 attribute_name_index; + // u4 attribute_length; + // u2 local_variable_type_table_length; + // { + // u2 start_pc; + // u2 length; + // u2 name_index; + // u2 signature_index; + // u2 index; + // } + attr_size += 2 + 4 + 2 + local_variable_type_table_length * (2 + 2 + 2 + 2 + 2); + } } } @@ -223,6 +249,9 @@ void JvmtiClassFileReconstituter::write_code_attribute(methodHandle method) { if (local_variable_table_length != 0) { write_local_variable_table_attribute(method, local_variable_table_length); } + if (local_variable_type_table_length != 0) { + write_local_variable_type_table_attribute(method, local_variable_type_table_length); + } } // Write Exceptions attribute @@ -387,7 +416,7 @@ void JvmtiClassFileReconstituter::write_line_number_table_attribute(methodHandle } } -// Write LineNumberTable attribute +// Write LocalVariableTable attribute // JVMSpec| LocalVariableTable_attribute { // JVMSpec| u2 attribute_name_index; // JVMSpec| u4 attribute_length; @@ -417,6 +446,39 @@ void JvmtiClassFileReconstituter::write_local_variable_table_attribute(methodHan } } +// Write LocalVariableTypeTable attribute +// JVMSpec| LocalVariableTypeTable_attribute { +// JVMSpec| u2 attribute_name_index; +// JVMSpec| u4 attribute_length; +// JVMSpec| u2 local_variable_type_table_length; +// JVMSpec| { u2 start_pc; +// JVMSpec| u2 length; +// JVMSpec| u2 name_index; +// JVMSpec| u2 signature_index; +// JVMSpec| u2 index; +// JVMSpec| } local_variable_type_table[local_variable_type_table_length]; +// JVMSpec| } +void JvmtiClassFileReconstituter::write_local_variable_type_table_attribute(methodHandle method, u2 num_entries) { + write_attribute_name_index("LocalVariableTypeTable"); + write_u4(2 + num_entries * (2 + 2 + 2 + 2 + 2)); + write_u2(num_entries); + + LocalVariableTableElement *elem = method->localvariable_table_start(); + for (int j=0; jlocalvariable_table_length(); j++) { + if (elem->signature_cp_index > 0) { + // Local variable has a generic signature - write LVTT attribute entry + write_u2(elem->start_bci); + write_u2(elem->length); + write_u2(elem->name_cp_index); + write_u2(elem->signature_cp_index); + write_u2(elem->slot); + num_entries--; + } + elem++; + } + assert(num_entries == 0, "just checking"); +} + // Write stack map table attribute // JSR-202| StackMapTable_attribute { // JSR-202| u2 attribute_name_index; diff --git a/src/share/vm/prims/jvmtiClassFileReconstituter.hpp b/src/share/vm/prims/jvmtiClassFileReconstituter.hpp index 0904d17fa..365bcd756 100644 --- a/src/share/vm/prims/jvmtiClassFileReconstituter.hpp +++ b/src/share/vm/prims/jvmtiClassFileReconstituter.hpp @@ -120,6 +120,7 @@ class JvmtiClassFileReconstituter : public JvmtiConstantPoolReconstituter { u2 line_number_table_entries(methodHandle method); void write_line_number_table_attribute(methodHandle method, u2 num_entries); void write_local_variable_table_attribute(methodHandle method, u2 num_entries); + void write_local_variable_type_table_attribute(methodHandle method, u2 num_entries); void write_stackmap_table_attribute(methodHandle method, int stackmap_table_len); u2 inner_classes_attribute_length(); void write_inner_classes_attribute(int length); -- cgit v1.2.3 From aa63cf8449cc79e02adcd66110346699fe38d025 Mon Sep 17 00:00:00 2001 From: coleenp Date: Sat, 29 Sep 2012 06:40:00 -0400 Subject: 8000213: NPG: Should have renamed arrayKlass and typeArrayKlass Summary: Capitalize these metadata types (and objArrayKlass) Reviewed-by: stefank, twisti, kvn --- src/share/vm/prims/jni.cpp | 16 ++++++++-------- src/share/vm/prims/jniCheck.cpp | 2 +- src/share/vm/prims/jvm.cpp | 8 ++++---- src/share/vm/prims/jvmtiRedefineClasses.cpp | 2 +- src/share/vm/prims/jvmtiTagMap.cpp | 4 ++-- src/share/vm/prims/unsafe.cpp | 2 +- 6 files changed, 17 insertions(+), 17 deletions(-) (limited to 'src/share/vm/prims') diff --git a/src/share/vm/prims/jni.cpp b/src/share/vm/prims/jni.cpp index c9450e9dc..a9d6ac222 100644 --- a/src/share/vm/prims/jni.cpp +++ b/src/share/vm/prims/jni.cpp @@ -3442,8 +3442,8 @@ JNI_ENTRY(jobjectArray, jni_NewObjectArray(JNIEnv *env, jsize length, jclass ele KlassHandle ek(THREAD, java_lang_Class::as_Klass(JNIHandles::resolve_non_null(elementClass))); Klass* ako = Klass::cast(ek())->array_klass(CHECK_NULL); KlassHandle ak = KlassHandle(THREAD, ako); - objArrayKlass::cast(ak())->initialize(CHECK_NULL); - objArrayOop result = objArrayKlass::cast(ak())->allocate(length, CHECK_NULL); + ObjArrayKlass::cast(ak())->initialize(CHECK_NULL); + objArrayOop result = ObjArrayKlass::cast(ak())->allocate(length, CHECK_NULL); oop initial_value = JNIHandles::resolve(initialElement); if (initial_value != NULL) { // array already initialized with NULL for (int index = 0; index < length; index++) { @@ -3502,7 +3502,7 @@ JNI_ENTRY(void, jni_SetObjectArrayElement(JNIEnv *env, jobjectArray array, jsize objArrayOop a = objArrayOop(JNIHandles::resolve_non_null(array)); oop v = JNIHandles::resolve(value); if (a->is_within_bounds(index)) { - if (v == NULL || v->is_a(objArrayKlass::cast(a->klass())->element_klass())) { + if (v == NULL || v->is_a(ObjArrayKlass::cast(a->klass())->element_klass())) { a->obj_at_put(index, v); } else { THROW(vmSymbols::java_lang_ArrayStoreException()); @@ -3787,7 +3787,7 @@ jni_Get##Result##ArrayRegion(JNIEnv *env, ElementType##Array array, jsize start, THROW(vmSymbols::java_lang_ArrayIndexOutOfBoundsException()); \ } else { \ if (len > 0) { \ - int sc = typeArrayKlass::cast(src->klass())->log2_element_size(); \ + int sc = TypeArrayKlass::cast(src->klass())->log2_element_size(); \ memcpy((u_char*) buf, \ (u_char*) src->Tag##_at_addr(start), \ len << sc); \ @@ -3822,7 +3822,7 @@ jni_Get##Result##ArrayRegion(JNIEnv *env, ElementType##Array array, jsize start, THROW(vmSymbols::java_lang_ArrayIndexOutOfBoundsException()); \ } else { \ if (len > 0) { \ - int sc = typeArrayKlass::cast(src->klass())->log2_element_size(); \ + int sc = TypeArrayKlass::cast(src->klass())->log2_element_size(); \ memcpy((u_char*) buf, \ (u_char*) src->Tag##_at_addr(start), \ len << sc); \ @@ -3871,7 +3871,7 @@ jni_Set##Result##ArrayRegion(JNIEnv *env, ElementType##Array array, jsize start, THROW(vmSymbols::java_lang_ArrayIndexOutOfBoundsException()); \ } else { \ if (len > 0) { \ - int sc = typeArrayKlass::cast(dst->klass())->log2_element_size(); \ + int sc = TypeArrayKlass::cast(dst->klass())->log2_element_size(); \ memcpy((u_char*) dst->Tag##_at_addr(start), \ (u_char*) buf, \ len << sc); \ @@ -3906,7 +3906,7 @@ jni_Set##Result##ArrayRegion(JNIEnv *env, ElementType##Array array, jsize start, THROW(vmSymbols::java_lang_ArrayIndexOutOfBoundsException()); \ } else { \ if (len > 0) { \ - int sc = typeArrayKlass::cast(dst->klass())->log2_element_size(); \ + int sc = TypeArrayKlass::cast(dst->klass())->log2_element_size(); \ memcpy((u_char*) dst->Tag##_at_addr(start), \ (u_char*) buf, \ len << sc); \ @@ -4251,7 +4251,7 @@ JNI_ENTRY(void*, jni_GetPrimitiveArrayCritical(JNIEnv *env, jarray array, jboole if (a->is_objArray()) { type = T_OBJECT; } else { - type = typeArrayKlass::cast(a->klass())->element_type(); + type = TypeArrayKlass::cast(a->klass())->element_type(); } void* ret = arrayOop(a)->base(type); #ifndef USDT2 diff --git a/src/share/vm/prims/jniCheck.cpp b/src/share/vm/prims/jniCheck.cpp index 8182f8b56..aa8475f06 100644 --- a/src/share/vm/prims/jniCheck.cpp +++ b/src/share/vm/prims/jniCheck.cpp @@ -290,7 +290,7 @@ checkArray(JavaThread* thr, jarray jArray, int elementType) if (elementType != -1) { if (aOop->is_typeArray()) { - BasicType array_type = typeArrayKlass::cast(aOop->klass())->element_type(); + BasicType array_type = TypeArrayKlass::cast(aOop->klass())->element_type(); if (array_type != elementType) ReportJNIFatalError(thr, fatal_element_type_mismatch); } else if (aOop->is_objArray()) { diff --git a/src/share/vm/prims/jvm.cpp b/src/share/vm/prims/jvm.cpp index 63748cf36..34e1683ab 100644 --- a/src/share/vm/prims/jvm.cpp +++ b/src/share/vm/prims/jvm.cpp @@ -1048,7 +1048,7 @@ JVM_ENTRY(jobjectArray, JVM_GetClassSigners(JNIEnv *env, jclass cls)) if (signers == NULL) return NULL; // copy of the signers array - Klass* element = objArrayKlass::cast(signers->klass())->element_klass(); + Klass* element = ObjArrayKlass::cast(signers->klass())->element_klass(); objArrayOop signers_copy = oopFactory::new_objArray(element, signers->length(), CHECK_NULL); for (int index = 0; index < signers->length(); index++) { signers_copy->obj_at_put(index, signers->obj_at(index)); @@ -3302,10 +3302,10 @@ JVM_ENTRY(jobject, JVM_AllocateNewArray(JNIEnv *env, jobject obj, jclass currCla if (k->oop_is_typeArray()) { // typeArray - result = typeArrayKlass::cast(k)->allocate(length, CHECK_NULL); + result = TypeArrayKlass::cast(k)->allocate(length, CHECK_NULL); } else if (k->oop_is_objArray()) { // objArray - objArrayKlass* oak = objArrayKlass::cast(k); + ObjArrayKlass* oak = ObjArrayKlass::cast(k); oak->initialize(CHECK_NULL); // make sure class is initialized (matches Classic VM behavior) result = oak->allocate(length, CHECK_NULL); } else { @@ -4193,7 +4193,7 @@ JVM_ENTRY(jobjectArray, JVM_DumpThreads(JNIEnv *env, jclass threadClass, jobject } // check if threads is not an array of objects of Thread class - Klass* k = objArrayKlass::cast(ah->klass())->element_klass(); + Klass* k = ObjArrayKlass::cast(ah->klass())->element_klass(); if (k != SystemDictionary::Thread_klass()) { THROW_(vmSymbols::java_lang_IllegalArgumentException(), 0); } diff --git a/src/share/vm/prims/jvmtiRedefineClasses.cpp b/src/share/vm/prims/jvmtiRedefineClasses.cpp index ef614ff41..44be3d5f2 100644 --- a/src/share/vm/prims/jvmtiRedefineClasses.cpp +++ b/src/share/vm/prims/jvmtiRedefineClasses.cpp @@ -2606,7 +2606,7 @@ void VM_RedefineClasses::set_new_constant_pool( void VM_RedefineClasses::adjust_array_vtable(Klass* k_oop) { - arrayKlass* ak = arrayKlass::cast(k_oop); + ArrayKlass* ak = ArrayKlass::cast(k_oop); bool trace_name_printed = false; ak->vtable()->adjust_method_entries(_matching_old_methods, _matching_new_methods, diff --git a/src/share/vm/prims/jvmtiTagMap.cpp b/src/share/vm/prims/jvmtiTagMap.cpp index cd91a0c8d..56715bce1 100644 --- a/src/share/vm/prims/jvmtiTagMap.cpp +++ b/src/share/vm/prims/jvmtiTagMap.cpp @@ -1075,7 +1075,7 @@ static jint invoke_array_primitive_value_callback(jvmtiArrayPrimitiveValueCallba // get base address of first element typeArrayOop array = typeArrayOop(obj); - BasicType type = typeArrayKlass::cast(array->klass())->element_type(); + BasicType type = TypeArrayKlass::cast(array->klass())->element_type(); void* elements = array->base(type); // jvmtiPrimitiveType is defined so this mapping is always correct @@ -2750,7 +2750,7 @@ inline bool VM_HeapWalkOperation::iterate_over_array(oop o) { objArrayOop array = objArrayOop(o); // array reference to its class - oop mirror = objArrayKlass::cast(array->klass())->java_mirror(); + oop mirror = ObjArrayKlass::cast(array->klass())->java_mirror(); if (!CallbackInvoker::report_class_reference(o, mirror)) { return false; } diff --git a/src/share/vm/prims/unsafe.cpp b/src/share/vm/prims/unsafe.cpp index c91a827e5..051c85975 100644 --- a/src/share/vm/prims/unsafe.cpp +++ b/src/share/vm/prims/unsafe.cpp @@ -802,7 +802,7 @@ static void getBaseAndScale(int& base, int& scale, jclass acls, TRAPS) { base = arrayOopDesc::base_offset_in_bytes(T_OBJECT); scale = heapOopSize; } else if (k->oop_is_typeArray()) { - typeArrayKlass* tak = typeArrayKlass::cast(k); + TypeArrayKlass* tak = TypeArrayKlass::cast(k); base = tak->array_header_in_bytes(); assert(base == arrayOopDesc::base_offset_in_bytes(tak->element_type()), "array_header_size semantics ok"); scale = (1 << tak->log2_element_size()); -- cgit v1.2.3 From da0bce64c342df93d9202c93f2c4c4e8e0a75a67 Mon Sep 17 00:00:00 2001 From: coleenp Date: Mon, 8 Oct 2012 09:18:54 -0400 Subject: 7170638: Use DTRACE_PROBE[N] in JNI Set and SetStatic Field. Summary: Don't use HS_DTRACE_PROBE_CDECL_N and HS_DTRACE_PROBE_N directly. Reviewed-by: coleenp, kamg, dholmes, sspitsyn Contributed-by: Mark Wielaard --- src/share/vm/prims/jni.cpp | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) (limited to 'src/share/vm/prims') diff --git a/src/share/vm/prims/jni.cpp b/src/share/vm/prims/jni.cpp index a9d6ac222..eb99daccb 100644 --- a/src/share/vm/prims/jni.cpp +++ b/src/share/vm/prims/jni.cpp @@ -1,5 +1,6 @@ /* * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -2820,10 +2821,9 @@ JNI_END JNI_QUICK_ENTRY(void, jni_Set##Result##Field(JNIEnv *env, jobject obj, jfieldID fieldID, Argument value)) \ JNIWrapper("Set" XSTR(Result) "Field"); \ \ - HS_DTRACE_PROBE_CDECL_N(hotspot_jni, Set##Result##Field__entry, \ - ( JNIEnv*, jobject, jfieldID FP_SELECT_##Result(COMMA Argument,/*empty*/) ) ); \ - HS_DTRACE_PROBE_N(hotspot_jni, Set##Result##Field__entry, \ - ( env, obj, fieldID FP_SELECT_##Result(COMMA value,/*empty*/) ) ); \ + FP_SELECT_##Result( \ + DTRACE_PROBE4(hotspot_jni, Set##Result##Field__entry, env, obj, fieldID, value), \ + DTRACE_PROBE3(hotspot_jni, Set##Result##Field__entry, env, obj, fieldID)); \ \ oop o = JNIHandles::resolve_non_null(obj); \ Klass* k = o->klass(); \ @@ -3130,10 +3130,9 @@ JNI_END \ JNI_ENTRY(void, jni_SetStatic##Result##Field(JNIEnv *env, jclass clazz, jfieldID fieldID, Argument value)) \ JNIWrapper("SetStatic" XSTR(Result) "Field"); \ - HS_DTRACE_PROBE_CDECL_N(hotspot_jni, SetStatic##Result##Field__entry,\ - ( JNIEnv*, jclass, jfieldID FP_SELECT_##Result(COMMA Argument,/*empty*/) ) ); \ - HS_DTRACE_PROBE_N(hotspot_jni, SetStatic##Result##Field__entry, \ - ( env, clazz, fieldID FP_SELECT_##Result(COMMA value,/*empty*/) ) ); \ + FP_SELECT_##Result( \ + DTRACE_PROBE4(hotspot_jni, SetStatic##Result##Field__entry, env, clazz, fieldID, value), \ + DTRACE_PROBE3(hotspot_jni, SetStatic##Result##Field__entry, env, clazz, fieldID)); \ \ JNIid* id = jfieldIDWorkaround::from_static_jfieldID(fieldID); \ assert(id->is_static_field_id(), "invalid static field id"); \ -- cgit v1.2.3 From fb8c7bd27990938a885fa0c99e576f9bfda8177c Mon Sep 17 00:00:00 2001 From: twisti Date: Mon, 8 Oct 2012 17:04:00 -0700 Subject: 8000263: JSR 292: signature types may appear to be unloaded Reviewed-by: kvn, jrose --- src/share/vm/prims/methodHandles.hpp | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'src/share/vm/prims') diff --git a/src/share/vm/prims/methodHandles.hpp b/src/share/vm/prims/methodHandles.hpp index 9b77b413f..2e45bac1c 100644 --- a/src/share/vm/prims/methodHandles.hpp +++ b/src/share/vm/prims/methodHandles.hpp @@ -196,7 +196,27 @@ public: # include "methodHandles_ppc.hpp" #endif - + // Tracing + static void trace_method_handle(MacroAssembler* _masm, const char* adaptername) PRODUCT_RETURN; + static void trace_method_handle_interpreter_entry(MacroAssembler* _masm, vmIntrinsics::ID iid) { + if (TraceMethodHandles) { + const char* name = vmIntrinsics::name_at(iid); + if (*name == '_') name += 1; + const size_t len = strlen(name) + 50; + char* qname = NEW_C_HEAP_ARRAY(char, len, mtInternal); + const char* suffix = ""; + if (is_signature_polymorphic(iid)) { + if (is_signature_polymorphic_static(iid)) + suffix = "/static"; + else + suffix = "/private"; + } + jio_snprintf(qname, len, "MethodHandle::interpreter_entry::%s%s", name, suffix); + trace_method_handle(_masm, qname); + // Note: Don't free the allocated char array because it's used + // during runtime. + } + } }; -- cgit v1.2.3 From 11e46e98d8273e2b7262eb72512ec4b5985694b2 Mon Sep 17 00:00:00 2001 From: mikael Date: Tue, 9 Oct 2012 10:09:34 -0700 Subject: 7197424: update copyright year to match last edit in jdk8 hotspot repository Summary: Update copyright year to 2012 for relevant files Reviewed-by: dholmes, coleenp --- src/share/vm/prims/jniExport.hpp | 2 +- src/share/vm/prims/jvmtiCodeBlobEvents.cpp | 2 +- src/share/vm/prims/jvmtiExtensions.cpp | 2 +- src/share/vm/prims/jvmtiRawMonitor.cpp | 2 +- src/share/vm/prims/jvmtiTagMap.hpp | 2 +- src/share/vm/prims/jvmtiUtil.cpp | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) (limited to 'src/share/vm/prims') diff --git a/src/share/vm/prims/jniExport.hpp b/src/share/vm/prims/jniExport.hpp index 841b3dc5c..9c93de8c7 100644 --- a/src/share/vm/prims/jniExport.hpp +++ b/src/share/vm/prims/jniExport.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/src/share/vm/prims/jvmtiCodeBlobEvents.cpp b/src/share/vm/prims/jvmtiCodeBlobEvents.cpp index 3a9a4ea1c..c46afdc10 100644 --- a/src/share/vm/prims/jvmtiCodeBlobEvents.cpp +++ b/src/share/vm/prims/jvmtiCodeBlobEvents.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/src/share/vm/prims/jvmtiExtensions.cpp b/src/share/vm/prims/jvmtiExtensions.cpp index 9f6a1b101..15f61b70b 100644 --- a/src/share/vm/prims/jvmtiExtensions.cpp +++ b/src/share/vm/prims/jvmtiExtensions.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/src/share/vm/prims/jvmtiRawMonitor.cpp b/src/share/vm/prims/jvmtiRawMonitor.cpp index 9031bbb29..12e69b369 100644 --- a/src/share/vm/prims/jvmtiRawMonitor.cpp +++ b/src/share/vm/prims/jvmtiRawMonitor.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/src/share/vm/prims/jvmtiTagMap.hpp b/src/share/vm/prims/jvmtiTagMap.hpp index ede639efe..d47c5e51d 100644 --- a/src/share/vm/prims/jvmtiTagMap.hpp +++ b/src/share/vm/prims/jvmtiTagMap.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/src/share/vm/prims/jvmtiUtil.cpp b/src/share/vm/prims/jvmtiUtil.cpp index 425ca1d98..0ae652ba6 100644 --- a/src/share/vm/prims/jvmtiUtil.cpp +++ b/src/share/vm/prims/jvmtiUtil.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it -- cgit v1.2.3 From 50a8701bdde5aab33fe1ab09e5fbe4655540ee40 Mon Sep 17 00:00:00 2001 From: jprovino Date: Wed, 10 Oct 2012 14:35:58 -0400 Subject: 7189254: Change makefiles for more flexibility to override defaults Summary: Change makefiles so that targets and parameters can be overridden by alternate makefiles. Reviewed-by: dholmes, coleenp --- src/share/vm/prims/forte.hpp | 4 +- src/share/vm/prims/jni.cpp | 12 +- src/share/vm/prims/jvmtiEnter.xsl | 9 +- src/share/vm/prims/jvmtiEnvBase.hpp | 7 +- src/share/vm/prims/jvmtiExport.hpp | 219 ++++++++++++++++------------ src/share/vm/prims/jvmtiImpl.hpp | 18 +-- src/share/vm/prims/jvmtiRedefineClasses.hpp | 6 +- src/share/vm/prims/jvmtiTagMap.hpp | 4 +- src/share/vm/prims/jvmtiThreadState.hpp | 2 +- src/share/vm/prims/nativeLookup.cpp | 2 + 10 files changed, 160 insertions(+), 123 deletions(-) (limited to 'src/share/vm/prims') diff --git a/src/share/vm/prims/forte.hpp b/src/share/vm/prims/forte.hpp index 9631faeb1..29a8a6854 100644 --- a/src/share/vm/prims/forte.hpp +++ b/src/share/vm/prims/forte.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -30,7 +30,7 @@ class Forte : AllStatic { public: static void register_stub(const char* name, address start, address end) - KERNEL_RETURN; + NOT_JVMTI_RETURN; // register internal VM stub }; diff --git a/src/share/vm/prims/jni.cpp b/src/share/vm/prims/jni.cpp index c9450e9dc..505fcd415 100644 --- a/src/share/vm/prims/jni.cpp +++ b/src/share/vm/prims/jni.cpp @@ -3003,9 +3003,9 @@ JNI_ENTRY(jobject, jni_GetStaticObjectField(JNIEnv *env, jclass clazz, jfieldID HOTSPOT_JNI_GETSTATICOBJECTFIELD_ENTRY( env, clazz, (uintptr_t) fieldID); #endif /* USDT2 */ -#ifndef JNICHECK_KERNEL +#if INCLUDE_JNI_CHECK DEBUG_ONLY(Klass* param_k = jniCheck::validate_class(thread, clazz);) -#endif // JNICHECK_KERNEL +#endif // INCLUDE_JNI_CHECK JNIid* id = jfieldIDWorkaround::from_static_jfieldID(fieldID); assert(id->is_static_field_id(), "invalid static field id"); // Keep JVMTI addition small and only check enabled flag here. @@ -3951,6 +3951,7 @@ DEFINE_SETSCALARARRAYREGION(T_DOUBLE, jdouble, Double, double // SetNativeMethodPrefix(es) functions in the JVM TI Spec for details. static Method* find_prefixed_native(KlassHandle k, Symbol* name, Symbol* signature, TRAPS) { +#if INCLUDE_JVMTI ResourceMark rm(THREAD); Method* method; int name_len = name->utf8_length(); @@ -3982,6 +3983,7 @@ static Method* find_prefixed_native(KlassHandle k, name_len = trial_len; name_str = trial_name_str; } +#endif // INCLUDE_JVMTI return NULL; // not found } @@ -4975,11 +4977,9 @@ void quicken_jni_functions() { // Returns the function structure struct JNINativeInterface_* jni_functions() { -#ifndef JNICHECK_KERNEL +#if INCLUDE_JNI_CHECK if (CheckJNICalls) return jni_functions_check(); -#else // JNICHECK_KERNEL - if (CheckJNICalls) warning("-Xcheck:jni is not supported in kernel vm."); -#endif // JNICHECK_KERNEL +#endif // INCLUDE_JNI_CHECK return &jni_NativeInterface; } diff --git a/src/share/vm/prims/jvmtiEnter.xsl b/src/share/vm/prims/jvmtiEnter.xsl index 6b867e676..a1d128b13 100644 --- a/src/share/vm/prims/jvmtiEnter.xsl +++ b/src/share/vm/prims/jvmtiEnter.xsl @@ -1,6 +1,6 @@