comparison src/share/vm/classfile/javaClasses.hpp @ 20677:fe34c5ab0b35

8042235: redefining method used by multiple MethodHandles crashes VM Summary: note all MemberNames created on internal list for adjusting method entries. Reviewed-by: sspitsyn, dcubed, lfoltan
author coleenp
date Wed, 19 Nov 2014 13:02:11 -0500
parents 47e3110c47e8
children 7848fc12602b
comparison
equal deleted inserted replaced
20666:bee8095780db 20677:fe34c5ab0b35
1094 static void set_flags(oop mname, int flags); 1094 static void set_flags(oop mname, int flags);
1095 1095
1096 static Metadata* vmtarget(oop mname); 1096 static Metadata* vmtarget(oop mname);
1097 static void set_vmtarget(oop mname, Metadata* target); 1097 static void set_vmtarget(oop mname, Metadata* target);
1098 #if INCLUDE_JVMTI 1098 #if INCLUDE_JVMTI
1099 static void adjust_vmtarget(oop mname, Metadata* target); 1099 static void adjust_vmtarget(oop mname, Method* old_method, Method* new_method,
1100 bool* trace_name_printed);
1100 #endif // INCLUDE_JVMTI 1101 #endif // INCLUDE_JVMTI
1101 1102
1102 static intptr_t vmindex(oop mname); 1103 static intptr_t vmindex(oop mname);
1103 static void set_vmindex(oop mname, intptr_t index); 1104 static void set_vmindex(oop mname, intptr_t index);
1104 1105
1107 return klass->is_subclass_of(SystemDictionary::MemberName_klass()); 1108 return klass->is_subclass_of(SystemDictionary::MemberName_klass());
1108 } 1109 }
1109 static bool is_instance(oop obj) { 1110 static bool is_instance(oop obj) {
1110 return obj != NULL && is_subclass(obj->klass()); 1111 return obj != NULL && is_subclass(obj->klass());
1111 } 1112 }
1113
1114 static bool is_method(oop obj);
1112 1115
1113 // Relevant integer codes (keep these in synch. with MethodHandleNatives.Constants): 1116 // Relevant integer codes (keep these in synch. with MethodHandleNatives.Constants):
1114 enum { 1117 enum {
1115 MN_IS_METHOD = 0x00010000, // method (not constructor) 1118 MN_IS_METHOD = 0x00010000, // method (not constructor)
1116 MN_IS_CONSTRUCTOR = 0x00020000, // constructor 1119 MN_IS_CONSTRUCTOR = 0x00020000, // constructor