< prev index next >

src/java.base/share/classes/jdk/internal/classfile/impl/BoundAttribute.java

Print this page
*** 937,10 ***
--- 937,27 ---
              }
              return permittedSubclasses;
          }
      }
  
+     public static final class BoundLoadableDescriptorsAttribute extends BoundAttribute<LoadableDescriptorsAttribute>
+             implements LoadableDescriptorsAttribute {
+         private List<Utf8Entry> loadableDescriptors = null;
+ 
+         public BoundLoadableDescriptorsAttribute(ClassReader cf, AttributeMapper<LoadableDescriptorsAttribute> mapper, int pos) {
+             super(cf, mapper, pos);
+         }
+ 
+         @Override
+         public List<Utf8Entry> loadableDescriptors() {
+             if (loadableDescriptors == null) {
+                 loadableDescriptors = readEntryList(payloadStart, Utf8Entry.class);
+             }
+             return loadableDescriptors;
+         }
+     }
+ 
      public abstract static sealed class BoundCodeAttribute
              extends BoundAttribute<CodeAttribute>
              implements CodeAttribute
              permits CodeImpl {
          protected final int codeStart;

*** 1016,10 ***
--- 1033,12 ---
                  name.equalsString(NAME_EXCEPTIONS) ? exceptions() : null;
              case 0x7adb2910 ->
                  name.equalsString(NAME_INNER_CLASSES) ? innerClasses() : null;
              case 0x653f0551 ->
                  name.equalsString(NAME_LINE_NUMBER_TABLE) ? lineNumberTable() : null;
+            case 0x5f348b64 ->
+                 name.equalsString(NAME_LOADABLE_DESCRIPTORS) ? loadableDescriptors() : null;
              case 0x64c75927 ->
                  name.equalsString(NAME_LOCAL_VARIABLE_TABLE) ? localVariableTable() : null;
              case 0x6697f98d ->
                  name.equalsString(NAME_LOCAL_VARIABLE_TYPE_TABLE) ? localVariableTypeTable() : null;
              case 0xdbb0cdcb ->
< prev index next >