Lines Matching refs:s
169 void prepare_new_block ( EState* s ) in prepare_new_block() argument
172 s->nblock = 0; in prepare_new_block()
173 s->numZ = 0; in prepare_new_block()
174 s->state_out_pos = 0; in prepare_new_block()
175 BZ_INITIALISE_CRC ( s->blockCRC ); in prepare_new_block()
176 for (i = 0; i < 256; i++) s->inUse[i] = False; in prepare_new_block()
177 s->blockNo++; in prepare_new_block()
183 void init_RL ( EState* s ) in init_RL() argument
185 s->state_in_ch = 256; in init_RL()
186 s->state_in_len = 0; in init_RL()
191 Bool isempty_RL ( EState* s ) in isempty_RL() argument
193 if (s->state_in_ch < 256 && s->state_in_len > 0) in isempty_RL()
206 EState* s; in BZ_API() local
219 s = BZALLOC( sizeof(EState) ); in BZ_API()
220 if (s == NULL) return BZ_MEM_ERROR; in BZ_API()
221 s->strm = strm; in BZ_API()
223 s->arr1 = NULL; in BZ_API()
224 s->arr2 = NULL; in BZ_API()
225 s->ftab = NULL; in BZ_API()
228 s->arr1 = BZALLOC( n * sizeof(UInt32) ); in BZ_API()
229 s->arr2 = BZALLOC( (n+BZ_N_OVERSHOOT) * sizeof(UInt32) ); in BZ_API()
230 s->ftab = BZALLOC( 65537 * sizeof(UInt32) ); in BZ_API()
232 if (s->arr1 == NULL || s->arr2 == NULL || s->ftab == NULL) { in BZ_API()
233 if (s->arr1 != NULL) BZFREE(s->arr1); in BZ_API()
234 if (s->arr2 != NULL) BZFREE(s->arr2); in BZ_API()
235 if (s->ftab != NULL) BZFREE(s->ftab); in BZ_API()
236 if (s != NULL) BZFREE(s); in BZ_API()
240 s->blockNo = 0; in BZ_API()
241 s->state = BZ_S_INPUT; in BZ_API()
242 s->mode = BZ_M_RUNNING; in BZ_API()
243 s->combinedCRC = 0; in BZ_API()
244 s->blockSize100k = blockSize100k; in BZ_API()
245 s->nblockMAX = 100000 * blockSize100k - 19; in BZ_API()
246 s->verbosity = verbosity; in BZ_API()
247 s->workFactor = workFactor; in BZ_API()
249 s->block = (UChar*)s->arr2; in BZ_API()
250 s->mtfv = (UInt16*)s->arr1; in BZ_API()
251 s->zbits = NULL; in BZ_API()
252 s->ptr = (UInt32*)s->arr1; in BZ_API()
254 strm->state = s; in BZ_API()
259 init_RL ( s ); in BZ_API()
260 prepare_new_block ( s ); in BZ_API()
267 void add_pair_to_block ( EState* s ) in add_pair_to_block() argument
270 UChar ch = (UChar)(s->state_in_ch); in add_pair_to_block()
271 for (i = 0; i < s->state_in_len; i++) { in add_pair_to_block()
272 BZ_UPDATE_CRC( s->blockCRC, ch ); in add_pair_to_block()
274 s->inUse[s->state_in_ch] = True; in add_pair_to_block()
275 switch (s->state_in_len) { in add_pair_to_block()
277 s->block[s->nblock] = (UChar)ch; s->nblock++; in add_pair_to_block()
280 s->block[s->nblock] = (UChar)ch; s->nblock++; in add_pair_to_block()
281 s->block[s->nblock] = (UChar)ch; s->nblock++; in add_pair_to_block()
284 s->block[s->nblock] = (UChar)ch; s->nblock++; in add_pair_to_block()
285 s->block[s->nblock] = (UChar)ch; s->nblock++; in add_pair_to_block()
286 s->block[s->nblock] = (UChar)ch; s->nblock++; in add_pair_to_block()
289 s->inUse[s->state_in_len-4] = True; in add_pair_to_block()
290 s->block[s->nblock] = (UChar)ch; s->nblock++; in add_pair_to_block()
291 s->block[s->nblock] = (UChar)ch; s->nblock++; in add_pair_to_block()
292 s->block[s->nblock] = (UChar)ch; s->nblock++; in add_pair_to_block()
293 s->block[s->nblock] = (UChar)ch; s->nblock++; in add_pair_to_block()
294 s->block[s->nblock] = ((UChar)(s->state_in_len-4)); in add_pair_to_block()
295 s->nblock++; in add_pair_to_block()
303 void flush_RL ( EState* s ) in flush_RL() argument
305 if (s->state_in_ch < 256) add_pair_to_block ( s ); in flush_RL()
306 init_RL ( s ); in flush_RL()
340 Bool copy_input_until_stop ( EState* s ) in copy_input_until_stop() argument
344 if (s->mode == BZ_M_RUNNING) { in copy_input_until_stop()
349 if (s->nblock >= s->nblockMAX) break; in copy_input_until_stop()
351 if (s->strm->avail_in == 0) break; in copy_input_until_stop()
353 ADD_CHAR_TO_BLOCK ( s, (UInt32)(*((UChar*)(s->strm->next_in))) ); in copy_input_until_stop()
354 s->strm->next_in++; in copy_input_until_stop()
355 s->strm->avail_in--; in copy_input_until_stop()
356 s->strm->total_in_lo32++; in copy_input_until_stop()
357 if (s->strm->total_in_lo32 == 0) s->strm->total_in_hi32++; in copy_input_until_stop()
365 if (s->nblock >= s->nblockMAX) break; in copy_input_until_stop()
367 if (s->strm->avail_in == 0) break; in copy_input_until_stop()
369 if (s->avail_in_expect == 0) break; in copy_input_until_stop()
371 ADD_CHAR_TO_BLOCK ( s, (UInt32)(*((UChar*)(s->strm->next_in))) ); in copy_input_until_stop()
372 s->strm->next_in++; in copy_input_until_stop()
373 s->strm->avail_in--; in copy_input_until_stop()
374 s->strm->total_in_lo32++; in copy_input_until_stop()
375 if (s->strm->total_in_lo32 == 0) s->strm->total_in_hi32++; in copy_input_until_stop()
376 s->avail_in_expect--; in copy_input_until_stop()
385 Bool copy_output_until_stop ( EState* s ) in copy_output_until_stop() argument
392 if (s->strm->avail_out == 0) break; in copy_output_until_stop()
395 if (s->state_out_pos >= s->numZ) break; in copy_output_until_stop()
398 *(s->strm->next_out) = s->zbits[s->state_out_pos]; in copy_output_until_stop()
399 s->state_out_pos++; in copy_output_until_stop()
400 s->strm->avail_out--; in copy_output_until_stop()
401 s->strm->next_out++; in copy_output_until_stop()
402 s->strm->total_out_lo32++; in copy_output_until_stop()
403 if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++; in copy_output_until_stop()
416 EState* s = strm->state; in handle_compress() local
420 if (s->state == BZ_S_OUTPUT) { in handle_compress()
421 progress_out |= copy_output_until_stop ( s ); in handle_compress()
422 if (s->state_out_pos < s->numZ) break; in handle_compress()
423 if (s->mode == BZ_M_FINISHING && in handle_compress()
424 s->avail_in_expect == 0 && in handle_compress()
425 isempty_RL(s)) break; in handle_compress()
426 prepare_new_block ( s ); in handle_compress()
427 s->state = BZ_S_INPUT; in handle_compress()
428 if (s->mode == BZ_M_FLUSHING && in handle_compress()
429 s->avail_in_expect == 0 && in handle_compress()
430 isempty_RL(s)) break; in handle_compress()
433 if (s->state == BZ_S_INPUT) { in handle_compress()
434 progress_in |= copy_input_until_stop ( s ); in handle_compress()
435 if (s->mode != BZ_M_RUNNING && s->avail_in_expect == 0) { in handle_compress()
436 flush_RL ( s ); in handle_compress()
437 BZ2_compressBlock ( s, (Bool)(s->mode == BZ_M_FINISHING) ); in handle_compress()
438 s->state = BZ_S_OUTPUT; in handle_compress()
441 if (s->nblock >= s->nblockMAX) { in handle_compress()
442 BZ2_compressBlock ( s, False ); in handle_compress()
443 s->state = BZ_S_OUTPUT; in handle_compress()
446 if (s->strm->avail_in == 0) { in handle_compress()
461 EState* s; in BZ_API() local
463 s = strm->state; in BZ_API()
464 if (s == NULL) return BZ_PARAM_ERROR; in BZ_API()
465 if (s->strm != strm) return BZ_PARAM_ERROR; in BZ_API()
468 switch (s->mode) { in BZ_API()
480 s->avail_in_expect = strm->avail_in; in BZ_API()
481 s->mode = BZ_M_FLUSHING; in BZ_API()
486 s->avail_in_expect = strm->avail_in; in BZ_API()
487 s->mode = BZ_M_FINISHING; in BZ_API()
495 if (s->avail_in_expect != s->strm->avail_in) in BZ_API()
498 if (s->avail_in_expect > 0 || !isempty_RL(s) || in BZ_API()
499 s->state_out_pos < s->numZ) return BZ_FLUSH_OK; in BZ_API()
500 s->mode = BZ_M_RUNNING; in BZ_API()
505 if (s->avail_in_expect != s->strm->avail_in) in BZ_API()
509 if (s->avail_in_expect > 0 || !isempty_RL(s) || in BZ_API()
510 s->state_out_pos < s->numZ) return BZ_FINISH_OK; in BZ_API()
511 s->mode = BZ_M_IDLE; in BZ_API()
521 EState* s; in BZ_API() local
523 s = strm->state; in BZ_API()
524 if (s == NULL) return BZ_PARAM_ERROR; in BZ_API()
525 if (s->strm != strm) return BZ_PARAM_ERROR; in BZ_API()
527 if (s->arr1 != NULL) BZFREE(s->arr1); in BZ_API()
528 if (s->arr2 != NULL) BZFREE(s->arr2); in BZ_API()
529 if (s->ftab != NULL) BZFREE(s->ftab); in BZ_API()
548 DState* s; in BZ_API() local
559 s = BZALLOC( sizeof(DState) ); in BZ_API()
560 if (s == NULL) return BZ_MEM_ERROR; in BZ_API()
561 s->strm = strm; in BZ_API()
562 strm->state = s; in BZ_API()
563 s->state = BZ_X_MAGIC_1; in BZ_API()
564 s->bsLive = 0; in BZ_API()
565 s->bsBuff = 0; in BZ_API()
566 s->calculatedCombinedCRC = 0; in BZ_API()
571 s->smallDecompress = (Bool)small; in BZ_API()
572 s->ll4 = NULL; in BZ_API()
573 s->ll16 = NULL; in BZ_API()
574 s->tt = NULL; in BZ_API()
575 s->currBlockNo = 0; in BZ_API()
576 s->verbosity = verbosity; in BZ_API()
584 void unRLE_obuf_to_output_FAST ( DState* s ) in unRLE_obuf_to_output_FAST() argument
588 if (s->blockRandomised) { in unRLE_obuf_to_output_FAST()
593 if (s->strm->avail_out == 0) return; in unRLE_obuf_to_output_FAST()
594 if (s->state_out_len == 0) break; in unRLE_obuf_to_output_FAST()
595 *( (UChar*)(s->strm->next_out) ) = s->state_out_ch; in unRLE_obuf_to_output_FAST()
596 BZ_UPDATE_CRC ( s->calculatedBlockCRC, s->state_out_ch ); in unRLE_obuf_to_output_FAST()
597 s->state_out_len--; in unRLE_obuf_to_output_FAST()
598 s->strm->next_out++; in unRLE_obuf_to_output_FAST()
599 s->strm->avail_out--; in unRLE_obuf_to_output_FAST()
600 s->strm->total_out_lo32++; in unRLE_obuf_to_output_FAST()
601 if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++; in unRLE_obuf_to_output_FAST()
605 if (s->nblock_used == s->save_nblock+1) return; in unRLE_obuf_to_output_FAST()
608 s->state_out_len = 1; in unRLE_obuf_to_output_FAST()
609 s->state_out_ch = s->k0; in unRLE_obuf_to_output_FAST()
611 k1 ^= BZ_RAND_MASK; s->nblock_used++; in unRLE_obuf_to_output_FAST()
612 if (s->nblock_used == s->save_nblock+1) continue; in unRLE_obuf_to_output_FAST()
613 if (k1 != s->k0) { s->k0 = k1; continue; }; in unRLE_obuf_to_output_FAST()
615 s->state_out_len = 2; in unRLE_obuf_to_output_FAST()
617 k1 ^= BZ_RAND_MASK; s->nblock_used++; in unRLE_obuf_to_output_FAST()
618 if (s->nblock_used == s->save_nblock+1) continue; in unRLE_obuf_to_output_FAST()
619 if (k1 != s->k0) { s->k0 = k1; continue; }; in unRLE_obuf_to_output_FAST()
621 s->state_out_len = 3; in unRLE_obuf_to_output_FAST()
623 k1 ^= BZ_RAND_MASK; s->nblock_used++; in unRLE_obuf_to_output_FAST()
624 if (s->nblock_used == s->save_nblock+1) continue; in unRLE_obuf_to_output_FAST()
625 if (k1 != s->k0) { s->k0 = k1; continue; }; in unRLE_obuf_to_output_FAST()
628 k1 ^= BZ_RAND_MASK; s->nblock_used++; in unRLE_obuf_to_output_FAST()
629 s->state_out_len = ((Int32)k1) + 4; in unRLE_obuf_to_output_FAST()
630 BZ_GET_FAST(s->k0); BZ_RAND_UPD_MASK; in unRLE_obuf_to_output_FAST()
631 s->k0 ^= BZ_RAND_MASK; s->nblock_used++; in unRLE_obuf_to_output_FAST()
637 UInt32 c_calculatedBlockCRC = s->calculatedBlockCRC; in unRLE_obuf_to_output_FAST()
638 UChar c_state_out_ch = s->state_out_ch; in unRLE_obuf_to_output_FAST()
639 Int32 c_state_out_len = s->state_out_len; in unRLE_obuf_to_output_FAST()
640 Int32 c_nblock_used = s->nblock_used; in unRLE_obuf_to_output_FAST()
641 Int32 c_k0 = s->k0; in unRLE_obuf_to_output_FAST()
642 UInt32* c_tt = s->tt; in unRLE_obuf_to_output_FAST()
643 UInt32 c_tPos = s->tPos; in unRLE_obuf_to_output_FAST()
644 char* cs_next_out = s->strm->next_out; in unRLE_obuf_to_output_FAST()
645 unsigned int cs_avail_out = s->strm->avail_out; in unRLE_obuf_to_output_FAST()
649 Int32 s_save_nblockPP = s->save_nblock+1; in unRLE_obuf_to_output_FAST()
704 total_out_lo32_old = s->strm->total_out_lo32; in unRLE_obuf_to_output_FAST()
705 s->strm->total_out_lo32 += (avail_out_INIT - cs_avail_out); in unRLE_obuf_to_output_FAST()
706 if (s->strm->total_out_lo32 < total_out_lo32_old) in unRLE_obuf_to_output_FAST()
707 s->strm->total_out_hi32++; in unRLE_obuf_to_output_FAST()
710 s->calculatedBlockCRC = c_calculatedBlockCRC; in unRLE_obuf_to_output_FAST()
711 s->state_out_ch = c_state_out_ch; in unRLE_obuf_to_output_FAST()
712 s->state_out_len = c_state_out_len; in unRLE_obuf_to_output_FAST()
713 s->nblock_used = c_nblock_used; in unRLE_obuf_to_output_FAST()
714 s->k0 = c_k0; in unRLE_obuf_to_output_FAST()
715 s->tt = c_tt; in unRLE_obuf_to_output_FAST()
716 s->tPos = c_tPos; in unRLE_obuf_to_output_FAST()
717 s->strm->next_out = cs_next_out; in unRLE_obuf_to_output_FAST()
718 s->strm->avail_out = cs_avail_out; in unRLE_obuf_to_output_FAST()
741 void unRLE_obuf_to_output_SMALL ( DState* s ) in unRLE_obuf_to_output_SMALL() argument
745 if (s->blockRandomised) { in unRLE_obuf_to_output_SMALL()
750 if (s->strm->avail_out == 0) return; in unRLE_obuf_to_output_SMALL()
751 if (s->state_out_len == 0) break; in unRLE_obuf_to_output_SMALL()
752 *( (UChar*)(s->strm->next_out) ) = s->state_out_ch; in unRLE_obuf_to_output_SMALL()
753 BZ_UPDATE_CRC ( s->calculatedBlockCRC, s->state_out_ch ); in unRLE_obuf_to_output_SMALL()
754 s->state_out_len--; in unRLE_obuf_to_output_SMALL()
755 s->strm->next_out++; in unRLE_obuf_to_output_SMALL()
756 s->strm->avail_out--; in unRLE_obuf_to_output_SMALL()
757 s->strm->total_out_lo32++; in unRLE_obuf_to_output_SMALL()
758 if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++; in unRLE_obuf_to_output_SMALL()
762 if (s->nblock_used == s->save_nblock+1) return; in unRLE_obuf_to_output_SMALL()
765 s->state_out_len = 1; in unRLE_obuf_to_output_SMALL()
766 s->state_out_ch = s->k0; in unRLE_obuf_to_output_SMALL()
768 k1 ^= BZ_RAND_MASK; s->nblock_used++; in unRLE_obuf_to_output_SMALL()
769 if (s->nblock_used == s->save_nblock+1) continue; in unRLE_obuf_to_output_SMALL()
770 if (k1 != s->k0) { s->k0 = k1; continue; }; in unRLE_obuf_to_output_SMALL()
772 s->state_out_len = 2; in unRLE_obuf_to_output_SMALL()
774 k1 ^= BZ_RAND_MASK; s->nblock_used++; in unRLE_obuf_to_output_SMALL()
775 if (s->nblock_used == s->save_nblock+1) continue; in unRLE_obuf_to_output_SMALL()
776 if (k1 != s->k0) { s->k0 = k1; continue; }; in unRLE_obuf_to_output_SMALL()
778 s->state_out_len = 3; in unRLE_obuf_to_output_SMALL()
780 k1 ^= BZ_RAND_MASK; s->nblock_used++; in unRLE_obuf_to_output_SMALL()
781 if (s->nblock_used == s->save_nblock+1) continue; in unRLE_obuf_to_output_SMALL()
782 if (k1 != s->k0) { s->k0 = k1; continue; }; in unRLE_obuf_to_output_SMALL()
785 k1 ^= BZ_RAND_MASK; s->nblock_used++; in unRLE_obuf_to_output_SMALL()
786 s->state_out_len = ((Int32)k1) + 4; in unRLE_obuf_to_output_SMALL()
787 BZ_GET_SMALL(s->k0); BZ_RAND_UPD_MASK; in unRLE_obuf_to_output_SMALL()
788 s->k0 ^= BZ_RAND_MASK; s->nblock_used++; in unRLE_obuf_to_output_SMALL()
796 if (s->strm->avail_out == 0) return; in unRLE_obuf_to_output_SMALL()
797 if (s->state_out_len == 0) break; in unRLE_obuf_to_output_SMALL()
798 *( (UChar*)(s->strm->next_out) ) = s->state_out_ch; in unRLE_obuf_to_output_SMALL()
799 BZ_UPDATE_CRC ( s->calculatedBlockCRC, s->state_out_ch ); in unRLE_obuf_to_output_SMALL()
800 s->state_out_len--; in unRLE_obuf_to_output_SMALL()
801 s->strm->next_out++; in unRLE_obuf_to_output_SMALL()
802 s->strm->avail_out--; in unRLE_obuf_to_output_SMALL()
803 s->strm->total_out_lo32++; in unRLE_obuf_to_output_SMALL()
804 if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++; in unRLE_obuf_to_output_SMALL()
808 if (s->nblock_used == s->save_nblock+1) return; in unRLE_obuf_to_output_SMALL()
810 s->state_out_len = 1; in unRLE_obuf_to_output_SMALL()
811 s->state_out_ch = s->k0; in unRLE_obuf_to_output_SMALL()
812 BZ_GET_SMALL(k1); s->nblock_used++; in unRLE_obuf_to_output_SMALL()
813 if (s->nblock_used == s->save_nblock+1) continue; in unRLE_obuf_to_output_SMALL()
814 if (k1 != s->k0) { s->k0 = k1; continue; }; in unRLE_obuf_to_output_SMALL()
816 s->state_out_len = 2; in unRLE_obuf_to_output_SMALL()
817 BZ_GET_SMALL(k1); s->nblock_used++; in unRLE_obuf_to_output_SMALL()
818 if (s->nblock_used == s->save_nblock+1) continue; in unRLE_obuf_to_output_SMALL()
819 if (k1 != s->k0) { s->k0 = k1; continue; }; in unRLE_obuf_to_output_SMALL()
821 s->state_out_len = 3; in unRLE_obuf_to_output_SMALL()
822 BZ_GET_SMALL(k1); s->nblock_used++; in unRLE_obuf_to_output_SMALL()
823 if (s->nblock_used == s->save_nblock+1) continue; in unRLE_obuf_to_output_SMALL()
824 if (k1 != s->k0) { s->k0 = k1; continue; }; in unRLE_obuf_to_output_SMALL()
826 BZ_GET_SMALL(k1); s->nblock_used++; in unRLE_obuf_to_output_SMALL()
827 s->state_out_len = ((Int32)k1) + 4; in unRLE_obuf_to_output_SMALL()
828 BZ_GET_SMALL(s->k0); s->nblock_used++; in unRLE_obuf_to_output_SMALL()
838 DState* s; in BZ_API() local
840 s = strm->state; in BZ_API()
841 if (s == NULL) return BZ_PARAM_ERROR; in BZ_API()
842 if (s->strm != strm) return BZ_PARAM_ERROR; in BZ_API()
848 if (s->state == BZ_X_IDLE) return BZ_SEQUENCE_ERROR; in BZ_API()
849 if (s->state == BZ_X_OUTPUT) { in BZ_API()
850 if (s->smallDecompress) in BZ_API()
851 unRLE_obuf_to_output_SMALL ( s ); else in BZ_API()
852 unRLE_obuf_to_output_FAST ( s ); in BZ_API()
853 if (s->nblock_used == s->save_nblock+1 && s->state_out_len == 0) { in BZ_API()
854 BZ_FINALISE_CRC ( s->calculatedBlockCRC ); in BZ_API()
855 if (s->verbosity >= 3) in BZ_API()
856 VPrintf2 ( " {0x%x, 0x%x}", s->storedBlockCRC, in BZ_API()
857 s->calculatedBlockCRC ); in BZ_API()
858 if (s->verbosity >= 2) VPrintf0 ( "]" ); in BZ_API()
859 if (s->calculatedBlockCRC != s->storedBlockCRC) in BZ_API()
861 s->calculatedCombinedCRC in BZ_API()
862 = (s->calculatedCombinedCRC << 1) | in BZ_API()
863 (s->calculatedCombinedCRC >> 31); in BZ_API()
864 s->calculatedCombinedCRC ^= s->calculatedBlockCRC; in BZ_API()
865 s->state = BZ_X_BLKHDR_1; in BZ_API()
870 if (s->state >= BZ_X_MAGIC_1) { in BZ_API()
871 Int32 r = BZ2_decompress ( s ); in BZ_API()
873 if (s->verbosity >= 3) in BZ_API()
875 s->storedCombinedCRC, s->calculatedCombinedCRC ); in BZ_API()
876 if (s->calculatedCombinedCRC != s->storedCombinedCRC) in BZ_API()
880 if (s->state != BZ_X_OUTPUT) return r; in BZ_API()
893 DState* s; in BZ_API() local
895 s = strm->state; in BZ_API()
896 if (s == NULL) return BZ_PARAM_ERROR; in BZ_API()
897 if (s->strm != strm) return BZ_PARAM_ERROR; in BZ_API()
899 if (s->tt != NULL) BZFREE(s->tt); in BZ_API()
900 if (s->ll16 != NULL) BZFREE(s->ll16); in BZ_API()
901 if (s->ll4 != NULL) BZFREE(s->ll4); in BZ_API()