< prev index next >

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

Print this page
*** 1,7 ***
  /*
!  * Copyright (c) 2022, 2024, 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
--- 1,7 ---
  /*
!  * Copyright (c) 2022, 2026, 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

*** 34,25 ***
  
  public final class MethodImpl
          extends AbstractElement
          implements MethodModel, MethodInfo, Util.Writable {
  
!     private final ClassReader reader;
      private final int startPos, endPos, attributesPos;
      private List<Attribute<?>> attributes;
      private int[] parameterSlots;
  
!     public MethodImpl(ClassReader reader, int startPos, int endPos, int attrStart) {
          this.reader = reader;
          this.startPos = startPos;
          this.endPos = endPos;
          this.attributesPos = attrStart;
      }
  
      @Override
      public AccessFlags flags() {
!         return new AccessFlagsImpl(AccessFlag.Location.METHOD, reader.readU2(startPos));
      }
  
      @Override
      public Optional<ClassModel> parent() {
          if (reader instanceof ClassReaderImpl cri)
--- 34,25 ---
  
  public final class MethodImpl
          extends AbstractElement
          implements MethodModel, MethodInfo, Util.Writable {
  
!     private final ClassReaderImpl reader;
      private final int startPos, endPos, attributesPos;
      private List<Attribute<?>> attributes;
      private int[] parameterSlots;
  
!     public MethodImpl(ClassReaderImpl reader, int startPos, int endPos, int attrStart) {
          this.reader = reader;
          this.startPos = startPos;
          this.endPos = endPos;
          this.attributesPos = attrStart;
      }
  
      @Override
      public AccessFlags flags() {
!         return new AccessFlagsImpl(AccessFlag.Location.METHOD, reader.readU2(startPos), reader.classFileVersion());
      }
  
      @Override
      public Optional<ClassModel> parent() {
          if (reader instanceof ClassReaderImpl cri)

*** 96,11 ***
          return attributes;
      }
  
      @Override
      public void writeTo(BufWriterImpl buf) {
!         if (buf.canWriteDirect(reader)) {
              reader.copyBytesTo(buf, startPos, endPos - startPos);
          }
          else {
              buf.writeU2U2U2(flags().flagsMask(),
                      buf.cpIndex(methodName()),
--- 96,11 ---
          return attributes;
      }
  
      @Override
      public void writeTo(BufWriterImpl buf) {
!         if (Util.canSkipMethodInflation(reader, this, buf)) {
              reader.copyBytesTo(buf, startPos, endPos - startPos);
          }
          else {
              buf.writeU2U2U2(flags().flagsMask(),
                      buf.cpIndex(methodName()),
< prev index next >