# HG changeset patch # User Doug Simon # Date 1354874856 -3600 # Node ID 045c5f8ae689ee3606abbcedf8617a456004ff89 # Parent ae1f369117438de8ba6567938a1c8618beec2ac6 modified code installation to handle debug info that only contains oop maps but no frame information diff -r ae1f36911743 -r 045c5f8ae689 src/share/vm/graal/graalCodeInstaller.cpp --- a/src/share/vm/graal/graalCodeInstaller.cpp Thu Dec 06 14:01:32 2012 +0100 +++ b/src/share/vm/graal/graalCodeInstaller.cpp Fri Dec 07 11:07:36 2012 +0100 @@ -538,8 +538,12 @@ // jint next_pc_offset = Assembler::locate_next_instruction(instruction) - _instructions->start(); _debug_recorder->add_safepoint(pc_offset, -1, create_oop_map(_total_frame_size, _parameter_count, debug_info)); - oop code_pos = DebugInfo::bytecodePosition(debug_info); - record_scope(pc_offset, code_pos, new GrowableArray()); + oop frame = DebugInfo::bytecodePosition(debug_info); + if (frame != NULL) { + record_scope(pc_offset, frame, new GrowableArray()); + } else { + // Stubs do not record scope info, just oop maps + } _debug_recorder->end_safepoint(pc_offset); } @@ -595,8 +599,13 @@ if (debug_info != NULL) { oop frame = DebugInfo::bytecodePosition(debug_info); - _debug_recorder->add_safepoint(next_pc_offset, BytecodeFrame::leafGraphId(frame), create_oop_map(_total_frame_size, _parameter_count, debug_info)); - record_scope(next_pc_offset, frame, new GrowableArray()); + jlong leaf_graph_id = frame == NULL ? -1 : BytecodeFrame::leafGraphId(frame); + _debug_recorder->add_safepoint(next_pc_offset, leaf_graph_id, create_oop_map(_total_frame_size, _parameter_count, debug_info)); + if (frame != NULL) { + record_scope(next_pc_offset, frame, new GrowableArray()); + } else { + // Stubs do not record scope info, just oop maps + } } if (global_stub != NULL) {