Skus to takto
while (bitreader.hasLeft())
{
nr = 0;
while (bitreader.getBit()) nr+=M;
for (mask = 1; mask < M; mask<<=1)
if(bitreader.getBit())
nr |= mask;
intwriter.putInt(nr);
}
P.S. a aj tie hasLeft funkcie u bitreaderu a bytereaderu mozu mat vplyv ak su nejake neefektivne. Ale snad tam mas len jedno if s 2 testami (test aktualny pointer oproti pointru konca buffra alebo (pointer-buffer < length) a test r_mask != 0 u bitreaderu)