Example #1
0
  public static void mergeDoAbc(List<Decoder> decoders, Encoder encoder) {
    // final long time = System.currentTimeMillis();

    encoder.enablePeepHole();
    for (int i = 0, n = decoders.size(); i < n; i++) {
      Decoder decoder = decoders.get(i);
      if (decoder == null) {
        continue;
      }

      encoder.useDecoder(i, decoder);
      decoder.methodInfo.decodeAll(encoder, decoder.in);
      decoder.metadataInfo.decodeAll(encoder, decoder.in);
      decoder.classInfo.decodeInstances(encoder, decoder.in);
      decoder.classInfo.decodeClasses(encoder, decoder.in);
      decoder.scriptInfo.decodeAll(encoder, decoder.in);
      decoder.methodBodies.decodeAll(encoder, decoder.in);

      encoder.endDecoder(decoder);
    }

    // final long l = System.currentTimeMillis() - time;
    // System.out.print("\nmerge: ");
    // System.out.print(l);
  }