Пример #1
0
  private void write(DataOutputStream out) throws IOException, SnapshotException {
    Stack<Integer> stack = new Stack<Integer>();
    stack.add(-1);
    while (!stack.isEmpty()) {
      int objectId = stack.pop();

      int[] objectIds = snapshot.getImmediateDominatedIds(objectId);
      long[] addresses = new long[objectIds.length];
      for (int i = 0; i < objectIds.length; i++)
        addresses[i] = snapshot.mapIdToAddress(objectIds[i]);

      ArrayUtils.sortDesc(addresses, objectIds);
      for (int i = 0; i < addresses.length; i++) out.writeLong(addresses[i]);

      addresses = null;

      for (int i = objectIds.length - 1; i >= 0; i--) stack.add(objectIds[i]);
    }
  }