void push(int oldOffset, int newOffset) {
      LOG.assertTrue(oldOffset >= 0, "negative offset is pushed to walk-through stack");
      if (size >= newOffsets.length) {
        int newSize = size * 3 / 2;
        oldOffsets = Arrays.copyOf(oldOffsets, newSize);
        newOffsets = Arrays.copyOf(newOffsets, newSize);
        callStacks = Arrays.copyOf(callStacks, newSize);
      }
      oldOffsets[size] = oldOffset;
      newOffsets[size] = newOffset;
      callStacks[size] = currentStack;
      size++;
    }
void push(int oldOffset, int newOffset)