code: private void checkIfPackedField() throws IOException
      {
          // Do we have the start of a packed field?
          if (packedLimit == 0 && WireFormat.getTagWireType(lastTag) == WIRETYPE_LENGTH_DELIMITED)
          {
              final int length = readRawVarint32();
              if (length < 0)
                  throw ProtobufException.negativeSize();
  
              this.packedLimit = getTotalBytesRead() + length;
          }
      }
docs: Check if this field have been packed into a length-delimited field. If so, update internal state to reflect that
  packed fields are being read.
  
  @throws IOException