docs: private void checkIfPackedField() throws IOException
      {
          // Do we have the start of a packed field?
          if (packedLimit == 0 && getTagWireType(lastTag) == WIRETYPE_LENGTH_DELIMITED)
          {
              final int length = readRawVarint32();
              if (length < 0)
                  throw ProtobufException.negativeSize();
  
              if (offset + length > limit)
                  throw ProtobufException.misreportedSize();
  
              this.packedLimit = this.offset + length;
          }
      }