This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-bcel.git

commit e30871a3303c5c57237145e82289eb5fab3ce754
Author: Gary David Gregory (Code signing key) <ggreg...@apache.org>
AuthorDate: Sat Oct 29 10:46:47 2022 -0400

    Simplify array copy
---
 src/examples/Package.java                                  |  1 -
 src/main/java/org/apache/bcel/ExceptionConst.java          | 10 +++-------
 src/main/java/org/apache/bcel/classfile/Unknown.java       |  7 ++++---
 src/main/java/org/apache/bcel/classfile/Utility.java       |  3 +--
 src/main/java/org/apache/bcel/generic/ConstantPoolGen.java |  7 ++++---
 src/main/java/org/apache/bcel/generic/InstructionList.java |  4 ++--
 src/main/java/org/apache/bcel/generic/SWITCH.java          |  8 ++++----
 src/main/java/org/apache/bcel/util/InstructionFinder.java  |  5 ++---
 src/test/java/org/apache/bcel/PerformanceTest.java         |  5 ++---
 9 files changed, 22 insertions(+), 28 deletions(-)

diff --git a/src/examples/Package.java b/src/examples/Package.java
index 1d630235..d7128170 100644
--- a/src/examples/Package.java
+++ b/src/examples/Package.java
@@ -34,7 +34,6 @@ import org.apache.bcel.classfile.ConstantPool;
 import org.apache.bcel.classfile.ConstantUtf8;
 import org.apache.bcel.classfile.JavaClass;
 import org.apache.bcel.util.ClassPath;
-import org.apache.commons.lang3.ArraySorter;
 
 /**
  * Package the client. Creates a jar file in the current directory that 
contains a minimal set of classes needed to run
diff --git a/src/main/java/org/apache/bcel/ExceptionConst.java 
b/src/main/java/org/apache/bcel/ExceptionConst.java
index bd5b0470..c0396dcd 100644
--- a/src/main/java/org/apache/bcel/ExceptionConst.java
+++ b/src/main/java/org/apache/bcel/ExceptionConst.java
@@ -16,6 +16,8 @@
  */
 package org.apache.bcel;
 
+import org.apache.commons.lang3.ArrayUtils;
+
 /**
  * Exception constants.
  *
@@ -120,13 +122,7 @@ public final class ExceptionConst {
 
     // helper method to merge exception class arrays
     private static Class<?>[] mergeExceptions(final Class<?>[] input, final 
Class<?>... extraClasses) {
-        final int extraLen = extraClasses == null ? 0 : extraClasses.length;
-        final Class<?>[] excs = new Class<?>[input.length + extraLen];
-        System.arraycopy(input, 0, excs, 0, input.length);
-        if (extraLen > 0) {
-            System.arraycopy(extraClasses, 0, excs, input.length, extraLen);
-        }
-        return excs;
+        return ArrayUtils.addAll(input, extraClasses);
     }
 
 }
diff --git a/src/main/java/org/apache/bcel/classfile/Unknown.java 
b/src/main/java/org/apache/bcel/classfile/Unknown.java
index 72d16268..dd0d956e 100644
--- a/src/main/java/org/apache/bcel/classfile/Unknown.java
+++ b/src/main/java/org/apache/bcel/classfile/Unknown.java
@@ -19,6 +19,7 @@ package org.apache.bcel.classfile;
 import java.io.DataInput;
 import java.io.DataOutputStream;
 import java.io.IOException;
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -165,9 +166,9 @@ public final class Unknown extends Attribute {
             return "(Unknown attribute " + name + ")";
         }
         String hex;
-        if (super.getLength() > 10) {
-            final byte[] tmp = new byte[10];
-            System.arraycopy(bytes, 0, tmp, 0, 10);
+        final int limit = 10;
+        if (super.getLength() > limit) {
+            final byte[] tmp = Arrays.copyOf(bytes, limit);
             hex = Utility.toHexString(tmp) + "... (truncated)";
         } else {
             hex = Utility.toHexString(bytes);
diff --git a/src/main/java/org/apache/bcel/classfile/Utility.java 
b/src/main/java/org/apache/bcel/classfile/Utility.java
index 53beeba5..f0f64a59 100644
--- a/src/main/java/org/apache/bcel/classfile/Utility.java
+++ b/src/main/java/org/apache/bcel/classfile/Utility.java
@@ -671,8 +671,7 @@ public abstract class Utility {
             while ((b = gis.read()) >= 0) {
                 tmp[count++] = (byte) b;
             }
-            bytes = new byte[count];
-            System.arraycopy(tmp, 0, bytes, 0, count);
+            bytes = Arrays.copyOf(tmp, count);
         }
         return bytes;
     }
diff --git a/src/main/java/org/apache/bcel/generic/ConstantPoolGen.java 
b/src/main/java/org/apache/bcel/generic/ConstantPoolGen.java
index 0aeaafc2..29fed1f8 100644
--- a/src/main/java/org/apache/bcel/generic/ConstantPoolGen.java
+++ b/src/main/java/org/apache/bcel/generic/ConstantPoolGen.java
@@ -16,6 +16,7 @@
  */
 package org.apache.bcel.generic;
 
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -215,6 +216,8 @@ public class ConstantPoolGen {
 
     /**
      * Initialize with given constant pool.
+     *
+     * @param cp the constant pool.
      */
     public ConstantPoolGen(final ConstantPool cp) {
         this(cp.getConstantPool());
@@ -563,9 +566,7 @@ public class ConstantPoolGen {
      * @return constant pool with proper length
      */
     public ConstantPool getFinalConstantPool() {
-        final Constant[] cs = new Constant[index];
-        System.arraycopy(constants, 0, cs, 0, index);
-        return new ConstantPool(cs);
+        return new ConstantPool(Arrays.copyOf(constants, index));
     }
 
     private int getIndex(final Map<String, Integer> map, final String key) {
diff --git a/src/main/java/org/apache/bcel/generic/InstructionList.java 
b/src/main/java/org/apache/bcel/generic/InstructionList.java
index 4735f095..7c9bb3fb 100644
--- a/src/main/java/org/apache/bcel/generic/InstructionList.java
+++ b/src/main/java/org/apache/bcel/generic/InstructionList.java
@@ -20,6 +20,7 @@ import java.io.ByteArrayOutputStream;
 import java.io.DataOutputStream;
 import java.io.IOException;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
@@ -135,8 +136,7 @@ public class InstructionList implements 
Iterable<InstructionHandle> {
         } catch (final IOException e) {
             throw new ClassGenException(e.toString(), e);
         }
-        bytePositions = new int[count]; // Trim to proper size
-        System.arraycopy(pos, 0, bytePositions, 0, count);
+        bytePositions = Arrays.copyOf(pos, count); // Trim to proper size
         /*
          * Pass 2: Look for BranchInstruction and update their targets, i.e., 
convert offsets to instruction handles.
          */
diff --git a/src/main/java/org/apache/bcel/generic/SWITCH.java 
b/src/main/java/org/apache/bcel/generic/SWITCH.java
index caa79f50..1c10bd64 100644
--- a/src/main/java/org/apache/bcel/generic/SWITCH.java
+++ b/src/main/java/org/apache/bcel/generic/SWITCH.java
@@ -16,6 +16,8 @@
  */
 package org.apache.bcel.generic;
 
+import java.util.Arrays;
+
 /**
  * SWITCH - Branch depending on int value, generates either LOOKUPSWITCH or 
TABLESWITCH instruction, depending on
  * whether the match values (int[]) can be sorted with no gaps between the 
numbers.
@@ -78,10 +80,8 @@ public final class SWITCH implements CompoundInstruction {
             tVec[count] = targets[i];
             count++;
         }
-        match = new int[count];
-        targets = new InstructionHandle[count];
-        System.arraycopy(mVec, 0, match, 0, count);
-        System.arraycopy(tVec, 0, targets, 0, count);
+        match = Arrays.copyOf(mVec, count);
+        targets = Arrays.copyOf(tVec, count);
     }
 
     public Instruction getInstruction() {
diff --git a/src/main/java/org/apache/bcel/util/InstructionFinder.java 
b/src/main/java/org/apache/bcel/util/InstructionFinder.java
index f5f06d96..8f98914d 100644
--- a/src/main/java/org/apache/bcel/util/InstructionFinder.java
+++ b/src/main/java/org/apache/bcel/util/InstructionFinder.java
@@ -17,6 +17,7 @@
 package org.apache.bcel.util;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
@@ -257,9 +258,7 @@ public class InstructionFinder {
      * @return the matched piece of code as an array of instruction (handles)
      */
     private InstructionHandle[] getMatch(final int matchedFrom, final int 
matchLength) {
-        final InstructionHandle[] match = new InstructionHandle[matchLength];
-        System.arraycopy(handles, matchedFrom, match, 0, matchLength);
-        return match;
+        return Arrays.copyOfRange(handles, matchedFrom, matchedFrom + 
matchLength);
     }
 
     /**
diff --git a/src/test/java/org/apache/bcel/PerformanceTest.java 
b/src/test/java/org/apache/bcel/PerformanceTest.java
index aafe9ddf..fb992188 100644
--- a/src/test/java/org/apache/bcel/PerformanceTest.java
+++ b/src/test/java/org/apache/bcel/PerformanceTest.java
@@ -23,6 +23,7 @@ import java.io.ByteArrayInputStream;
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
+import java.util.Arrays;
 import java.util.Enumeration;
 import java.util.jar.JarEntry;
 import java.util.jar.JarFile;
@@ -49,9 +50,7 @@ public final class PerformanceTest {
             final int n = is.read(b, len, b.length - len);
             if (n == -1) {
                 if (len < b.length) {
-                    final byte[] c = new byte[len];
-                    System.arraycopy(b, 0, c, 0, len);
-                    b = c;
+                    b = Arrays.copyOf(b, len);
                 }
                 return b;
             }

Reply via email to