mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-21 19:44:41 +02:00
4926272: methodOopDesc::method_from_bcp is unsafe
Reviewed-by: coleenp, jrose, kvn, dcubed
This commit is contained in:
parent
8d210c170e
commit
423f587b01
33 changed files with 397 additions and 497 deletions
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
|
@ -221,7 +221,7 @@ void Rewriter::scan_method(methodOop method) {
|
|||
// call to calculate the length.
|
||||
bc_length = Bytecodes::length_for(c);
|
||||
if (bc_length == 0) {
|
||||
bc_length = Bytecodes::length_at(bcp);
|
||||
bc_length = Bytecodes::length_at(method, bcp);
|
||||
|
||||
// length_at will put us at the bytecode after the one modified
|
||||
// by 'wide'. We don't currently examine any of the bytecodes
|
||||
|
@ -237,9 +237,9 @@ void Rewriter::scan_method(methodOop method) {
|
|||
switch (c) {
|
||||
case Bytecodes::_lookupswitch : {
|
||||
#ifndef CC_INTERP
|
||||
Bytecode_lookupswitch* bc = Bytecode_lookupswitch_at(bcp);
|
||||
Bytecode_lookupswitch bc(method, bcp);
|
||||
(*bcp) = (
|
||||
bc->number_of_pairs() < BinarySwitchThreshold
|
||||
bc.number_of_pairs() < BinarySwitchThreshold
|
||||
? Bytecodes::_fast_linearswitch
|
||||
: Bytecodes::_fast_binaryswitch
|
||||
);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue