array[byteoffset] = array[byteoffset] | (unsigned char)(writeMask << (8 - bitCount - bitoffset));
array[ucharoffset] = array[ucharoffset] | (unsigned char)(writeMask << (8 - bitCount - bitoffset));
static void pushData(QByteArray &array, unsigned int &byteoffset, unsigned int &bitoffset, unsigned int data, unsigned char bit) {    // We can at most save 8 - offset bit or bit bits	while (bit > 0) {		unsigned int bitCount = qMin<unsigned int>(8 - bitoffset, bit);		unsigned int writeMask = (data >> (bit - bitCount)) & createOneMask(bitCount);				data &= ~ (writeMask << (bit - bitCount)); // Clear out the data we write from the original data		bit -= bitCount;		array[byteoffset] = array[byteoffset] | (unsigned char)(writeMask << (8 - bitCount - bitoffset));		bitoffset += bitCount;		if (bitoffset > 7) {			bitoffset = 0;			++byteoffset;		}	}}