]> source.dussan.org Git - javassist.git/commitdiff
Replace array copy loop with System.arraycopy 383/head
authorTimothy Hoffman <4001421+tim-hoffman@users.noreply.github.com>
Fri, 16 Jul 2021 18:29:45 +0000 (13:29 -0500)
committerTimothy Hoffman <4001421+tim-hoffman@users.noreply.github.com>
Fri, 16 Jul 2021 18:29:45 +0000 (13:29 -0500)
src/main/javassist/bytecode/StackMapTable.java
src/main/javassist/bytecode/stackmap/MapMaker.java

index 62a6aca0388ed291158049bdf2e305d983d92a0c..4fed201008ca65c70bc899348d726dca2a27d18e 100644 (file)
@@ -912,9 +912,15 @@ public class StackMapTable extends AttributeInfo {
         static byte[] insertGap(byte[] info, int where, int gap) {
             int len = info.length;
             byte[] newinfo = new byte[len + gap];
-            for (int i = 0; i < len; i++)
-                newinfo[i + (i < where ? 0 : gap)] = info[i];
-
+            if (where <= 0) {
+                System.arraycopy(info, 0, newinfo, gap, len);
+            } else if (where >= len) {
+                System.arraycopy(info, 0, newinfo, 0, len);
+            } else {
+                assert (where > 0 && where < len);
+                System.arraycopy(info, 0, newinfo, 0, where);
+                System.arraycopy(info, where, newinfo, where + gap, len - where);
+            }
             return newinfo;
         }
 
index bd79377fdde63df9d0dee5148370e590141e83c4..d016a3be2fae974257cb8681bd9df1df3d1e3f0a 100644 (file)
@@ -309,8 +309,7 @@ public class MapMaker extends Tracer {
     }
 
     protected static void copyTypeData(int n, TypeData[] srcTypes, TypeData[] destTypes) {
-        for (int i = 0; i < n; i++)
-            destTypes[i] = srcTypes[i];
+        System.arraycopy(srcTypes, 0, destTypes, 0, n);
     }
 
     private static TypeData validateTypeData(TypeData[] data, int length, int index) {