2675 Klass* clazz = java_lang_Class::as_Klass(java_lang_invoke_MemberName::clazz(mname())); |
2675 Klass* clazz = java_lang_Class::as_Klass(java_lang_invoke_MemberName::clazz(mname())); |
2676 InstanceKlass* holder = InstanceKlass::cast(clazz); |
2676 InstanceKlass* holder = InstanceKlass::cast(clazz); |
2677 Method* method = java_lang_StackFrameInfo::get_method(stackFrame, holder, CHECK); |
2677 Method* method = java_lang_StackFrameInfo::get_method(stackFrame, holder, CHECK); |
2678 |
2678 |
2679 short version = stackFrame->short_field(_version_offset); |
2679 short version = stackFrame->short_field(_version_offset); |
2680 short bci = stackFrame->short_field(_bci_offset); |
2680 int bci = stackFrame->int_field(_bci_offset); |
2681 Symbol* name = method->name(); |
2681 Symbol* name = method->name(); |
2682 java_lang_StackTraceElement::fill_in(stack_trace_element, holder, method, version, bci, name, CHECK); |
2682 java_lang_StackTraceElement::fill_in(stack_trace_element, holder, method, version, bci, name, CHECK); |
2683 } |
2683 } |
2684 |
2684 |
2685 #define STACKFRAMEINFO_FIELDS_DO(macro) \ |
2685 #define STACKFRAMEINFO_FIELDS_DO(macro) \ |
2686 macro(_memberName_offset, k, "memberName", object_signature, false); \ |
2686 macro(_memberName_offset, k, "memberName", object_signature, false); \ |
2687 macro(_bci_offset, k, "bci", short_signature, false) |
2687 macro(_bci_offset, k, "bci", int_signature, false) |
2688 |
2688 |
2689 void java_lang_StackFrameInfo::compute_offsets() { |
2689 void java_lang_StackFrameInfo::compute_offsets() { |
2690 InstanceKlass* k = SystemDictionary::StackFrameInfo_klass(); |
2690 InstanceKlass* k = SystemDictionary::StackFrameInfo_klass(); |
2691 STACKFRAMEINFO_FIELDS_DO(FIELD_COMPUTE_OFFSET); |
2691 STACKFRAMEINFO_FIELDS_DO(FIELD_COMPUTE_OFFSET); |
2692 STACKFRAMEINFO_INJECTED_FIELDS(INJECTED_FIELD_COMPUTE_OFFSET); |
2692 STACKFRAMEINFO_INJECTED_FIELDS(INJECTED_FIELD_COMPUTE_OFFSET); |
4222 void java_lang_StackFrameInfo::set_version(oop element, short value) { |
4222 void java_lang_StackFrameInfo::set_version(oop element, short value) { |
4223 element->short_field_put(_version_offset, value); |
4223 element->short_field_put(_version_offset, value); |
4224 } |
4224 } |
4225 |
4225 |
4226 void java_lang_StackFrameInfo::set_bci(oop element, int value) { |
4226 void java_lang_StackFrameInfo::set_bci(oop element, int value) { |
|
4227 assert(value >= 0 && value < max_jushort, "must be a valid bci value"); |
4227 element->int_field_put(_bci_offset, value); |
4228 element->int_field_put(_bci_offset, value); |
4228 } |
4229 } |
4229 |
4230 |
4230 void java_lang_LiveStackFrameInfo::set_monitors(oop element, oop value) { |
4231 void java_lang_LiveStackFrameInfo::set_monitors(oop element, oop value) { |
4231 element->obj_field_put(_monitors_offset, value); |
4232 element->obj_field_put(_monitors_offset, value); |