hotspot/src/share/vm/runtime/vframeArray.cpp
changeset 38133 78b95467b9f1
parent 33198 b37ad9fbf681
child 39261 18f007610de6
equal deleted inserted replaced
38132:ba888a4f352a 38133:78b95467b9f1
     1 /*
     1 /*
     2  * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 1997, 2016, 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.
   204   //
   204   //
   205   // For Compiler1, deoptimization can occur while throwing a NullPointerException at monitorenter,
   205   // For Compiler1, deoptimization can occur while throwing a NullPointerException at monitorenter,
   206   // in which case bcp should point to the monitorenter since it is within the exception's range.
   206   // in which case bcp should point to the monitorenter since it is within the exception's range.
   207 
   207 
   208   assert(*bcp != Bytecodes::_monitorenter || is_top_frame, "a _monitorenter must be a top frame");
   208   assert(*bcp != Bytecodes::_monitorenter || is_top_frame, "a _monitorenter must be a top frame");
   209   assert(thread->deopt_nmethod() != NULL, "nmethod should be known");
   209   assert(thread->deopt_compiled_method() != NULL, "compiled method should be known");
   210   guarantee(!(thread->deopt_nmethod()->is_compiled_by_c2() &&
   210   guarantee(!(thread->deopt_compiled_method()->is_compiled_by_c2() &&
   211               *bcp == Bytecodes::_monitorenter             &&
   211               *bcp == Bytecodes::_monitorenter             &&
   212               exec_mode == Deoptimization::Unpack_exception),
   212               exec_mode == Deoptimization::Unpack_exception),
   213             "shouldn't get exception during monitorenter");
   213             "shouldn't get exception during monitorenter");
   214 
   214 
   215   int popframe_preserved_args_size_in_bytes = 0;
   215   int popframe_preserved_args_size_in_bytes = 0;