7118280: The gbyc00102 JCK7 test causes an assert in JVM 7.0 fastdebug mode

Assert doesn't respect invokedynamic opcode

Reviewed-by: dcubed, phh
This commit is contained in:
Dmitry Samersoff 2012-03-01 12:41:13 +04:00
parent 555b593770
commit 3385cfe8cf

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2005, 2012, 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
@ -727,8 +727,11 @@ void JvmtiClassFileReconstituter::copy_bytecodes(methodHandle mh,
case Bytecodes::_invokestatic : // fall through
case Bytecodes::_invokedynamic : // fall through
case Bytecodes::_invokeinterface :
assert(len == 3 || (code == Bytecodes::_invokeinterface && len ==5),
assert(len == 3 ||
(code == Bytecodes::_invokeinterface && len == 5) ||
(code == Bytecodes::_invokedynamic && len == 5),
"sanity check");
int cpci = Bytes::get_native_u2(bcp+1);
bool is_invokedynamic = (EnableInvokeDynamic && code == Bytecodes::_invokedynamic);
if (is_invokedynamic)