diff options
author | Roman Shevchenko <roman.shevchenko@jetbrains.com> | 2014-10-06 17:26:24 +0200 |
---|---|---|
committer | Roman Shevchenko <roman.shevchenko@jetbrains.com> | 2014-10-06 17:26:24 +0200 |
commit | bef17b44fce71dfce6345f19695949eb4432e25d (patch) | |
tree | 45f65e5da978d7180c1b190ce816400882b07592 /src | |
parent | 8462998a86033277557a49b85f9720e21ae70dcb (diff) | |
download | fernflower-bef17b44fce71dfce6345f19695949eb4432e25d.tar fernflower-bef17b44fce71dfce6345f19695949eb4432e25d.tar.gz fernflower-bef17b44fce71dfce6345f19695949eb4432e25d.tar.lz fernflower-bef17b44fce71dfce6345f19695949eb4432e25d.tar.xz fernflower-bef17b44fce71dfce6345f19695949eb4432e25d.zip |
java-decompiler: minor optimization (no more empty array creation)
Diffstat (limited to 'src')
4 files changed, 10 insertions, 6 deletions
diff --git a/src/org/jetbrains/java/decompiler/struct/attr/StructLineNumberTableAttribute.java b/src/org/jetbrains/java/decompiler/struct/attr/StructLineNumberTableAttribute.java index 695d659..f35d3d9 100644 --- a/src/org/jetbrains/java/decompiler/struct/attr/StructLineNumberTableAttribute.java +++ b/src/org/jetbrains/java/decompiler/struct/attr/StructLineNumberTableAttribute.java @@ -17,6 +17,7 @@ package org.jetbrains.java.decompiler.struct.attr; import org.jetbrains.java.decompiler.struct.consts.ConstantPool; import org.jetbrains.java.decompiler.util.DataInputFullStream; +import org.jetbrains.java.decompiler.util.InterpreterUtil; import java.io.IOException; @@ -29,7 +30,7 @@ import java.io.IOException; * Created by Egor on 05.10.2014. */ public class StructLineNumberTableAttribute extends StructGeneralAttribute { - private int[] myLineInfo = new int[0]; + private int[] myLineInfo = InterpreterUtil.EMPTY_INT_ARRAY; @Override public void initContent(ConstantPool pool) throws IOException { @@ -44,7 +45,7 @@ public class StructLineNumberTableAttribute extends StructGeneralAttribute { } } else if (myLineInfo.length > 0) { - myLineInfo = new int[0]; + myLineInfo = InterpreterUtil.EMPTY_INT_ARRAY; } } diff --git a/src/org/jetbrains/java/decompiler/util/FastSparseSetFactory.java b/src/org/jetbrains/java/decompiler/util/FastSparseSetFactory.java index bf01035..64e98a0 100644 --- a/src/org/jetbrains/java/decompiler/util/FastSparseSetFactory.java +++ b/src/org/jetbrains/java/decompiler/util/FastSparseSetFactory.java @@ -88,6 +88,7 @@ public class FastSparseSetFactory<E> { public static class FastSparseSet<E> implements Iterable<E> { + public static final FastSparseSet[] EMPTY_ARRAY = new FastSparseSet[0]; private FastSparseSetFactory<E> factory; diff --git a/src/org/jetbrains/java/decompiler/util/InterpreterUtil.java b/src/org/jetbrains/java/decompiler/util/InterpreterUtil.java index 09e7bad..eaada90 100644 --- a/src/org/jetbrains/java/decompiler/util/InterpreterUtil.java +++ b/src/org/jetbrains/java/decompiler/util/InterpreterUtil.java @@ -29,6 +29,8 @@ import java.util.zip.ZipFile; public class InterpreterUtil { public static final boolean IS_WINDOWS = System.getProperty("os.name", "").startsWith("Windows"); + public static final int[] EMPTY_INT_ARRAY = new int[0]; + private static final int CHANNEL_WINDOW_SIZE = IS_WINDOWS ? 64 * 1024 * 1024 - (32 * 1024) : 64 * 1024 * 1024; // magic number for Windows private static final int BUFFER_SIZE = 16 * 1024; diff --git a/src/org/jetbrains/java/decompiler/util/SFormsFastMapDirect.java b/src/org/jetbrains/java/decompiler/util/SFormsFastMapDirect.java index 996607a..b70dede 100644 --- a/src/org/jetbrains/java/decompiler/util/SFormsFastMapDirect.java +++ b/src/org/jetbrains/java/decompiler/util/SFormsFastMapDirect.java @@ -38,9 +38,9 @@ public class SFormsFastMapDirect { private SFormsFastMapDirect(boolean initialize) { if (initialize) { for (int i = 2; i >= 0; i--) { - @SuppressWarnings("unchecked") FastSparseSet<Integer>[] empty = new FastSparseSet[0]; + @SuppressWarnings("unchecked") FastSparseSet<Integer>[] empty = FastSparseSet.EMPTY_ARRAY; elements[i] = empty; - next[i] = new int[0]; + next[i] = InterpreterUtil.EMPTY_INT_ARRAY; } } } @@ -99,8 +99,8 @@ public class SFormsFastMapDirect { while (pointer != 0); } else { - mapelements[i] = new FastSparseSet[0]; - mapnext[i] = new int[0]; + mapelements[i] = FastSparseSet.EMPTY_ARRAY; + mapnext[i] = InterpreterUtil.EMPTY_INT_ARRAY; } } |