comparison src/share/vm/runtime/frame.cpp @ 2142:8012aa3ccede

4926272: methodOopDesc::method_from_bcp is unsafe Reviewed-by: coleenp, jrose, kvn, dcubed
author never
date Thu, 13 Jan 2011 22:15:41 -0800
parents 54f5dd2aa1d9
children 3582bf76420e
comparison
equal deleted inserted replaced
2130:34d64ad817f4 2142:8012aa3ccede
1 /* 1 /*
2 * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 * 4 *
5 * This code is free software; you can redistribute it and/or modify it 5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as 6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
928 // Process a callee's arguments if we are at a call site 928 // Process a callee's arguments if we are at a call site
929 // (i.e., if we are at an invoke bytecode) 929 // (i.e., if we are at an invoke bytecode)
930 // This is used sometimes for calling into the VM, not for another 930 // This is used sometimes for calling into the VM, not for another
931 // interpreted or compiled frame. 931 // interpreted or compiled frame.
932 if (!m->is_native()) { 932 if (!m->is_native()) {
933 Bytecode_invoke *call = Bytecode_invoke_at_check(m, bci); 933 Bytecode_invoke call = Bytecode_invoke_check(m, bci);
934 if (call != NULL) { 934 if (call.is_valid()) {
935 signature = symbolHandle(thread, call->signature()); 935 signature = symbolHandle(thread, call.signature());
936 has_receiver = call->has_receiver(); 936 has_receiver = call.has_receiver();
937 if (map->include_argument_oops() && 937 if (map->include_argument_oops() &&
938 interpreter_frame_expression_stack_size() > 0) { 938 interpreter_frame_expression_stack_size() > 0) {
939 ResourceMark rm(thread); // is this right ??? 939 ResourceMark rm(thread); // is this right ???
940 // we are at a call site & the expression stack is not empty 940 // we are at a call site & the expression stack is not empty
941 // => process callee's arguments 941 // => process callee's arguments