< prev index next >

src/java.base/share/classes/jdk/internal/classfile/impl/verifier/VerificationTable.java

Print this page
@@ -1,7 +1,7 @@
  /*
-  * Copyright (c) 2022, 2024, Oracle and/or its affiliates. All rights reserved.
+  * Copyright (c) 2022, 2025, 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
   * under the terms of the GNU General Public License version 2 only, as
   * published by the Free Software Foundation.  Oracle designates this

@@ -157,13 +157,15 @@
                  _verifier.classError("StackMapTable format error: bad type array size");
              }
          }
  
          private static final int
+                         ASSERT_UNSET_FIELDS = 246,
                          SAME_LOCALS_1_STACK_ITEM_EXTENDED = 247,
                          SAME_EXTENDED = 251,
                          FULL = 255;
+         private static final int RESERVED_TAGS_UPPER_LIMIT = ASSERT_UNSET_FIELDS; // not inclusive
  
          public int get_frame_count() {
              return _frame_count;
          }
  

@@ -276,11 +278,11 @@
                      frame.copy_locals(pre_frame);
                  }
                  return frame;
              }
              int offset_delta = _stream.get_u2();
-             if (frame_type < SAME_LOCALS_1_STACK_ITEM_EXTENDED) {
+             if (frame_type < RESERVED_TAGS_UPPER_LIMIT) {
                  _verifier.classError("reserved frame type");
              }
              if (frame_type == SAME_LOCALS_1_STACK_ITEM_EXTENDED) {
                  if (first) {
                      offset = offset_delta;
< prev index next >