{
int i;
s->nblock = 0;
- s->numZ = 0;
- s->state_out_pos = 0;
+ //indexes inot s->zbits[], initialzation moved to init of s->zbits
+ //s->posZ = s->zbits; // was: s->numZ = 0;
+ //s->state_out_pos = s->zbits;
BZ_INITIALISE_CRC(s->blockCRC);
/* inlined memset would be nice to have here */
for (i = 0; i < 256; i++)
if (s->strm->avail_out == 0) break;
/*-- block done? --*/
- if (s->state_out_pos >= s->numZ) break;
+ if (s->state_out_pos >= s->posZ) break;
/*progress_out = True;*/
- *(s->strm->next_out) = s->zbits[s->state_out_pos];
- s->state_out_pos++;
+ *(s->strm->next_out) = *s->state_out_pos++;
s->strm->avail_out--;
s->strm->next_out++;
s->strm->total_out++;
while (1) {
if (s->state == BZ_S_OUTPUT) {
/*progress_out |=*/ copy_output_until_stop(s);
- if (s->state_out_pos < s->numZ) break;
+ if (s->state_out_pos < s->posZ) break;
if (s->mode == BZ_M_FINISHING
//# && s->avail_in_expect == 0
&& s->strm->avail_in == 0
/*if (s->avail_in_expect != s->strm->avail_in)
return BZ_SEQUENCE_ERROR;*/
/*progress =*/ handle_compress(strm);
- if (s->avail_in_expect > 0 || !isempty_RL(s) || s->state_out_pos < s->numZ)
+ if (s->avail_in_expect > 0 || !isempty_RL(s) || s->state_out_pos < s->posZ)
return BZ_FLUSH_OK;
s->mode = BZ_M_RUNNING;
return BZ_RUN_OK;
return BZ_SEQUENCE_ERROR;*/
/*progress =*/ handle_compress(strm);
/*if (!progress) return BZ_SEQUENCE_ERROR;*/
- //#if (s->avail_in_expect > 0 || !isempty_RL(s) || s->state_out_pos < s->numZ)
+ //#if (s->avail_in_expect > 0 || !isempty_RL(s) || s->state_out_pos < s->posZ)
//# return BZ_FINISH_OK;
- if (s->strm->avail_in > 0 || !isempty_RL(s) || s->state_out_pos < s->numZ)
+ if (s->strm->avail_in > 0 || !isempty_RL(s) || s->state_out_pos < s->posZ)
return BZ_FINISH_OK;
/*s->mode = BZ_M_IDLE;*/
return BZ_STREAM_END;
void bsFinishWrite(EState* s)
{
while (s->bsLive > 0) {
- s->zbits[s->numZ] = (uint8_t)(s->bsBuff >> 24);
- s->numZ++;
+ *s->posZ++ = (uint8_t)(s->bsBuff >> 24);
s->bsBuff <<= 8;
s->bsLive -= 8;
}
void bsW(EState* s, int32_t n, uint32_t v)
{
while (s->bsLive >= 8) {
- s->zbits[s->numZ] = (uint8_t)(s->bsBuff >> 24);
- s->numZ++;
+ *s->posZ++ = (uint8_t)(s->bsBuff >> 24);
s->bsBuff <<= 8;
s->bsLive -= 8;
}
void bsW16(EState* s, uint32_t v)
{
while (s->bsLive >= 8) {
- s->zbits[s->numZ] = (uint8_t)(s->bsBuff >> 24);
- s->numZ++;
+ *s->posZ++ = (uint8_t)(s->bsBuff >> 24);
s->bsBuff <<= 8;
s->bsLive -= 8;
}
s->combinedCRC = (s->combinedCRC << 1) | (s->combinedCRC >> 31);
s->combinedCRC ^= s->blockCRC;
if (s->blockNo > 1)
- s->numZ = 0;
+ s->posZ = s->zbits; // was: s->numZ = 0;
BZ2_blockSort(s);
}
s->zbits = &((uint8_t*)s->arr2)[s->nblock];
+ s->posZ = s->zbits;
+ s->state_out_pos = s->zbits;
/*-- If this is the first block, create the stream header. --*/
if (s->blockNo == 1) {