7118280: The gbyc00102 JCK7 test causes an assert in JVM 7.0 fastdebug mode
Summary: Assert doesn't respect invokedynamic opcode
Reviewed-by: dcubed, phh
--- a/hotspot/src/share/vm/prims/jvmtiClassFileReconstituter.cpp Tue Feb 28 07:58:43 2012 -0800
+++ b/hotspot/src/share/vm/prims/jvmtiClassFileReconstituter.cpp Thu Mar 01 12:41:13 2012 +0400
@@ -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 @@
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)