Projects STRLCPY jadx Commits b9d02ff4
🤬
  • refactor: remove all LinkedList usage

  • Loading...
  • Skylot committed 2 years ago
    b9d02ff4
    1 parent 29b64300
  • ■ ■ ■ ■ ■ ■
    jadx-core/src/main/java/jadx/core/codegen/ConditionGen.java
    1 1  package jadx.core.codegen;
    2 2   
     3 +import java.util.ArrayDeque;
    3 4  import java.util.Iterator;
    4  -import java.util.LinkedList;
    5 5  import java.util.Queue;
    6 6   
    7 7  import jadx.api.ICodeWriter;
    skipped 15 lines
    23 23  public class ConditionGen extends InsnGen {
    24 24   
    25 25   private static class CondStack {
    26  - private final Queue<IfCondition> stack = new LinkedList<>();
     26 + private final Queue<IfCondition> stack = new ArrayDeque<>();
    27 27   
    28 28   public Queue<IfCondition> getStack() {
    29 29   return stack;
    skipped 170 lines
  • ■ ■ ■ ■ ■ ■
    jadx-core/src/main/java/jadx/core/dex/attributes/nodes/PhiListAttr.java
    1 1  package jadx.core.dex.attributes.nodes;
    2 2   
    3  -import java.util.LinkedList;
     3 +import java.util.ArrayList;
    4 4  import java.util.List;
    5 5   
    6 6  import jadx.api.ICodeWriter;
    skipped 3 lines
    10 10   
    11 11  public class PhiListAttr implements IJadxAttribute {
    12 12   
    13  - private final List<PhiInsn> list = new LinkedList<>();
     13 + private final List<PhiInsn> list = new ArrayList<>();
    14 14   
    15 15   @Override
    16 16   public AType<PhiListAttr> getAttrType() {
    skipped 21 lines
  • ■ ■ ■ ■ ■
    jadx-core/src/main/java/jadx/core/dex/visitors/blocks/BlockProcessor.java
    skipped 1 lines
    2 2   
    3 3  import java.util.ArrayList;
    4 4  import java.util.LinkedHashSet;
    5  -import java.util.LinkedList;
    6 5  import java.util.List;
    7 6  import java.util.Set;
    8 7   
    skipped 423 lines
    432 431   BlockNode loopHeader = loop.getStart();
    433 432   List<BlockNode> preds = loopHeader.getPredecessors();
    434 433   if (preds.size() > 2) {
    435  - List<BlockNode> blocks = new LinkedList<>(preds);
     434 + List<BlockNode> blocks = new ArrayList<>(preds);
    436 435   blocks.removeIf(block -> block.contains(AFlag.LOOP_END));
    437 436   BlockNode first = blocks.remove(0);
    438 437   BlockNode preHeader = BlockSplitter.insertBlockBetween(mth, first, loopHeader);
    skipped 163 lines
  • ■ ■ ■ ■ ■ ■
    jadx-core/src/main/java/jadx/core/dex/visitors/regions/LoopRegionVisitor.java
    1 1  package jadx.core.dex.visitors.regions;
    2 2   
    3  -import java.util.LinkedList;
     3 +import java.util.ArrayList;
    4 4  import java.util.List;
    5 5   
    6 6  import org.slf4j.Logger;
    skipped 118 lines
    125 125   return false;
    126 126   }
    127 127   // can't make loop if argument from increment instruction is assign in loop
    128  - List<RegisterArg> args = new LinkedList<>();
     128 + List<RegisterArg> args = new ArrayList<>();
    129 129   incrInsn.getRegisterArgs(args);
    130 130   for (RegisterArg iArg : args) {
    131 131   try {
    skipped 136 lines
    268 268   || !checkInvoke(nextCall, "java.util.Iterator", "next()Ljava/lang/Object;")) {
    269 269   return false;
    270 270   }
    271  - List<InsnNode> toSkip = new LinkedList<>();
     271 + List<InsnNode> toSkip = new ArrayList<>();
    272 272   RegisterArg iterVar;
    273 273   if (nextCall.contains(AFlag.WRAPPED)) {
    274 274   InsnArg wrapArg = BlockUtils.searchWrappedInsnParent(mth, nextCall);
    skipped 182 lines
  • ■ ■ ■ ■ ■ ■
    jadx-core/src/main/java/jadx/core/dex/visitors/shrink/ArgsInfo.java
    1 1  package jadx.core.dex.visitors.shrink;
    2 2   
     3 +import java.util.ArrayList;
    3 4  import java.util.BitSet;
    4  -import java.util.LinkedList;
    5 5  import java.util.List;
    6 6   
    7 7  import jadx.core.dex.instructions.InsnType;
    skipped 22 lines
    30 30   }
    31 31   
    32 32   public static List<RegisterArg> getArgs(InsnNode insn) {
    33  - List<RegisterArg> args = new LinkedList<>();
     33 + List<RegisterArg> args = new ArrayList<>();
    34 34   addArgs(insn, args);
    35 35   return args;
    36 36   }
    skipped 111 lines
  • ■ ■ ■ ■ ■ ■
    jadx-core/src/main/java/jadx/core/dex/visitors/ssa/SSATransform.java
    1 1  package jadx.core.dex.visitors.ssa;
    2 2   
     3 +import java.util.ArrayDeque;
    3 4  import java.util.ArrayList;
    4 5  import java.util.BitSet;
    5 6  import java.util.Deque;
    6 7  import java.util.Iterator;
    7  -import java.util.LinkedList;
    8 8  import java.util.List;
    9 9   
    10 10  import jadx.core.dex.attributes.AFlag;
    skipped 70 lines
    81 81   int blocksCount = blocks.size();
    82 82   BitSet hasPhi = new BitSet(blocksCount);
    83 83   BitSet processed = new BitSet(blocksCount);
    84  - Deque<BlockNode> workList = new LinkedList<>();
     84 + Deque<BlockNode> workList = new ArrayDeque<>();
    85 85   
    86 86   BitSet assignBlocks = la.getAssignBlocks(regNum);
    87 87   for (int id = assignBlocks.nextSetBit(0); id >= 0; id = assignBlocks.nextSetBit(id + 1)) {
    skipped 48 lines
    136 136   RenameState initState = RenameState.init(mth);
    137 137   initPhiInEnterBlock(initState);
    138 138   
    139  - Deque<RenameState> stack = new LinkedList<>();
     139 + Deque<RenameState> stack = new ArrayDeque<>();
    140 140   stack.push(initState);
    141 141   while (!stack.isEmpty()) {
    142 142   RenameState state = stack.pop();
    skipped 327 lines
  • ■ ■ ■ ■ ■ ■
    jadx-core/src/main/java/jadx/core/xmlgen/ManifestAttributes.java
    skipped 3 lines
    4 4  import java.util.ArrayList;
    5 5  import java.util.HashMap;
    6 6  import java.util.LinkedHashMap;
    7  -import java.util.LinkedList;
    8 7  import java.util.List;
    9 8  import java.util.Map;
    10  -import java.util.stream.Collectors;
    11 9   
    12 10  import javax.xml.parsers.DocumentBuilder;
    13 11   
    skipped 161 lines
    175 173   if (attr.getType() == MAttrType.ENUM) {
    176 174   return attr.getValues().get(value);
    177 175   } else if (attr.getType() == MAttrType.FLAG) {
    178  - List<String> flagList = new LinkedList<>();
     176 + List<String> flagList = new ArrayList<>();
    179 177   List<Long> attrKeys = new ArrayList<>(attr.getValues().keySet());
    180 178   attrKeys.sort((a, b) -> Long.compare(b, a)); // sort descending
    181 179   for (Long key : attrKeys) {
    skipped 6 lines
    188 186   value ^= key;
    189 187   }
    190 188   }
    191  - return flagList.stream().collect(Collectors.joining("|"));
     189 + return String.join("|", flagList);
    192 190   }
    193 191   return null;
    194 192   }
    skipped 2 lines
  • ■ ■ ■ ■ ■ ■
    jadx-core/src/test/java/jadx/tests/integration/names/TestNameAssign2.java
    1 1  package jadx.tests.integration.names;
    2 2   
     3 +import java.util.ArrayDeque;
    3 4  import java.util.BitSet;
    4 5  import java.util.Deque;
    5  -import java.util.LinkedList;
    6 6  import java.util.List;
    7 7   
    8 8  import org.junit.jupiter.api.Test;
    skipped 17 lines
    26 26   int blocksCount = blocks.size();
    27 27   BitSet hasPhi = new BitSet(blocksCount);
    28 28   BitSet processed = new BitSet(blocksCount);
    29  - Deque<BlockNode> workList = new LinkedList<>();
     29 + Deque<BlockNode> workList = new ArrayDeque<>();
    30 30   
    31 31   BitSet assignBlocks = la.getAssignBlocks(regNum);
    32 32   for (int id = assignBlocks.nextSetBit(0); id >= 0; id = assignBlocks.nextSetBit(id + 1)) {
    skipped 33 lines
Please wait...
Page is in error, reload to recover