code: public void pointTo(Object baseObject, long baseOffset, int sizeInBytes) {
      // Read the numBytes of key array from the first 8 bytes.
      final long keyArraySize = Platform.getLong(baseObject, baseOffset);
      assert keyArraySize >= 0 : "keyArraySize (" + keyArraySize + ") should >= 0";
      assert keyArraySize <= Integer.MAX_VALUE :
        "keyArraySize (" + keyArraySize + ") should <= Integer.MAX_VALUE";
      final int valueArraySize = sizeInBytes - (int)keyArraySize - 8;
      assert valueArraySize >= 0 : "valueArraySize (" + valueArraySize + ") should >= 0";
  
      keys.pointTo(baseObject, baseOffset + 8, (int)keyArraySize);
      values.pointTo(baseObject, baseOffset + 8 + keyArraySize, valueArraySize);
  
      assert keys.numElements() == values.numElements();
  
      this.baseObject = baseObject;
      this.baseOffset = baseOffset;
      this.sizeInBytes = sizeInBytes;
    }
docs: Update this UnsafeMapData to point to different backing data.
  
  @param baseObject the base object
  @param baseOffset the offset within the base object
  @param sizeInBytes the size of this map's backing data, in bytes