comparison src/share/vm/opto/output.cpp @ 4583:597bc897257d

Made DebugInformationRecorder::describe_scope() take both a methodHandle _and_ a ciMethod* parameter to avoid creating handles in scopes where it is not allowed.
author Doug Simon <doug.simon@oracle.com>
date Mon, 13 Feb 2012 23:15:53 +0100
parents 04b9a2566eec
children 33df1aeaebbf
comparison
equal deleted inserted replaced
4582:b24386206122 4583:597bc897257d
942 ciMethod* scope_method = method ? method : _method; 942 ciMethod* scope_method = method ? method : _method;
943 // Describe the scope here 943 // Describe the scope here
944 assert(jvms->bci() >= InvocationEntryBci && jvms->bci() <= 0x10000, "must be a valid or entry BCI"); 944 assert(jvms->bci() >= InvocationEntryBci && jvms->bci() <= 0x10000, "must be a valid or entry BCI");
945 assert(!jvms->should_reexecute() || depth == max_depth, "reexecute allowed only for the youngest"); 945 assert(!jvms->should_reexecute() || depth == max_depth, "reexecute allowed only for the youngest");
946 // Now we can describe the scope. 946 // Now we can describe the scope.
947 debug_info()->describe_scope(safepoint_pc_offset, (methodOop)scope_method->get_oop(), jvms->bci(), jvms->should_reexecute(), is_method_handle_invoke, return_oop, locvals, expvals, monvals); 947 methodHandle null_mh;
948 bool rethrow_exception = false;
949 debug_info()->describe_scope(safepoint_pc_offset, null_mh, scope_method, jvms->bci(), jvms->should_reexecute(), rethrow_exception, is_method_handle_invoke, return_oop, locvals, expvals, monvals);
948 } // End jvms loop 950 } // End jvms loop
949 951
950 // Mark the end of the scope set. 952 // Mark the end of the scope set.
951 debug_info()->end_safepoint(safepoint_pc_offset); 953 debug_info()->end_safepoint(safepoint_pc_offset);
952 } 954 }
1025 // Visit scopes from oldest to youngest. 1027 // Visit scopes from oldest to youngest.
1026 for (int depth = 1; depth <= max_depth; depth++) { 1028 for (int depth = 1; depth <= max_depth; depth++) {
1027 JVMState* jvms = youngest_jvms->of_depth(depth); 1029 JVMState* jvms = youngest_jvms->of_depth(depth);
1028 ciMethod* method = jvms->has_method() ? jvms->method() : NULL; 1030 ciMethod* method = jvms->has_method() ? jvms->method() : NULL;
1029 assert(!jvms->should_reexecute() || depth==max_depth, "reexecute allowed only for the youngest"); 1031 assert(!jvms->should_reexecute() || depth==max_depth, "reexecute allowed only for the youngest");
1030 debug_info->describe_scope(pc_offset, (methodOop)method->get_oop(), jvms->bci(), jvms->should_reexecute()); 1032 methodHandle null_mh;
1033 debug_info->describe_scope(pc_offset, null_mh, method, jvms->bci(), jvms->should_reexecute());
1031 } 1034 }
1032 1035
1033 // Mark the end of the scope set. 1036 // Mark the end of the scope set.
1034 debug_info->end_non_safepoint(pc_offset); 1037 debug_info->end_non_safepoint(pc_offset);
1035 } 1038 }