docs: int reallocate(int offset) {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) JmfTr.entry(this, tc, "reallocate", new Object[]{Integer.valueOf(offset)});
  
      byte[] oldContents = contents;
      int oldMessageOffset = messageOffset;
      contents = new byte[length];
      System.arraycopy(oldContents, messageOffset, contents, 0, length);
      tableOffset -= messageOffset;
      dataOffset -= messageOffset;
      messageOffset = 0;
      reallocated = true;
      reallocated(contents, -1);
  
      int result = offset - oldMessageOffset;
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) JmfTr.exit(this, tc, "reallocate", Integer.valueOf(result));
      return result;
    }