7118280: The gbyc00102 JCK7 test causes an assert in JVM 7.0 fastdebug mode
authordsamersoff
Thu, 01 Mar 2012 12:41:13 +0400
changeset 12102 7a1c6c80bc23
parent 11957 a99139218339
child 12103 2ceb7aff05e3
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
hotspot/src/share/vm/prims/jvmtiClassFileReconstituter.cpp
--- 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)