Mercurial > hg > truffle
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 |