public virtual int readUnsignedShort() { if (pos + 1 < len) { // common, fast case return ((0xFF & buf[pos++]) << 8) | (0xFF & buf[pos++]); } // general case return (read() << 8) | read(); }