LLVM API Documentation

decompress.c File Reference

#include "bzlib_private.h"

Include dependency graph for decompress.c:

Go to the source code of this file.

Defines

#define RETURN(rrr)   { retVal = rrr; goto save_state_and_return; };
#define GET_BITS(lll, vvv, nnn)
#define GET_UCHAR(lll, uuu)   GET_BITS(lll,uuu,8)
#define GET_BIT(lll, uuu)   GET_BITS(lll,uuu,1)
#define GET_MTF_VAL(label1, label2, lval)

Functions

static void makeMaps_d (DState *s)
Int32 BZ2_decompress (DState *s)


Define Documentation

#define GET_BIT ( lll,
uuu   )     GET_BITS(lll,uuu,1)

Definition at line 110 of file decompress.c.

Referenced by BZ2_decompress().

#define GET_BITS ( lll,
vvv,
nnn   ) 

Value:

case lll: s->state = lll;                      \
   while (True) {                                 \
      if (s->bsLive >= nnn) {                     \
         UInt32 v;                                \
         v = (s->bsBuff >>                        \
             (s->bsLive-nnn)) & ((1 << nnn)-1);   \
         s->bsLive -= nnn;                        \
         vvv = v;                                 \
         break;                                   \
      }                                           \
      if (s->strm->avail_in == 0) RETURN(BZ_OK);  \
      s->bsBuff                                   \
         = (s->bsBuff << 8) |                     \
           ((UInt32)                              \
              (*((UChar*)(s->strm->next_in))));   \
      s->bsLive += 8;                             \
      s->strm->next_in++;                         \
      s->strm->avail_in--;                        \
      s->strm->total_in_lo32++;                   \
      if (s->strm->total_in_lo32 == 0)            \
         s->strm->total_in_hi32++;                \
   }

Definition at line 83 of file decompress.c.

Referenced by BZ2_decompress().

#define GET_MTF_VAL ( label1,
label2,
lval   ) 

Value:

{                                                 \
   if (groupPos == 0) {                           \
      groupNo++;                                  \
      if (groupNo >= nSelectors)                  \
         RETURN(BZ_DATA_ERROR);                   \
      groupPos = BZ_G_SIZE;                       \
      gSel = s->selector[groupNo];                \
      gMinlen = s->minLens[gSel];                 \
      gLimit = &(s->limit[gSel][0]);              \
      gPerm = &(s->perm[gSel][0]);                \
      gBase = &(s->base[gSel][0]);                \
   }                                              \
   groupPos--;                                    \
   zn = gMinlen;                                  \
   GET_BITS(label1, zvec, zn);                    \
   while (1) {                                    \
      if (zn > 20 /* the longest code */)         \
         RETURN(BZ_DATA_ERROR);                   \
      if (zvec <= gLimit[zn]) break;              \
      zn++;                                       \
      GET_BIT(label2, zj);                        \
      zvec = (zvec << 1) | zj;                    \
   };                                             \
   if (zvec - gBase[zn] < 0                       \
       || zvec - gBase[zn] >= BZ_MAX_ALPHA_SIZE)  \
      RETURN(BZ_DATA_ERROR);                      \
   lval = gPerm[zvec - gBase[zn]];                \
}

Definition at line 114 of file decompress.c.

Referenced by BZ2_decompress().

#define GET_UCHAR ( lll,
uuu   )     GET_BITS(lll,uuu,8)

Definition at line 107 of file decompress.c.

Referenced by BZ2_decompress().

#define RETURN ( rrr   )     { retVal = rrr; goto save_state_and_return; };

Definition at line 80 of file decompress.c.

Referenced by BZ2_decompress().


Function Documentation

Int32 BZ2_decompress ( DState s  ) 

Definition at line 146 of file decompress.c.

References DState::blockRandomised, DState::blockSize100k, BZ2_hbCreateDecodeTables(), BZ_DATA_ERROR, BZ_DATA_ERROR_MAGIC, BZ_GET_SMALL, BZ_HDR_0, BZ_HDR_B, BZ_HDR_h, BZ_HDR_Z, BZ_INITIALISE_CRC, BZ_MEM_ERROR, BZ_N_GROUPS, BZ_OK, BZ_RAND_INIT_MASK, BZ_RAND_MASK, BZ_RAND_UPD_MASK, BZ_RUNA, BZ_RUNB, BZ_X_BCRC_1, BZ_X_BCRC_2, BZ_X_BCRC_3, BZ_X_BCRC_4, BZ_X_BLKHDR_1, BZ_X_BLKHDR_2, BZ_X_BLKHDR_3, BZ_X_BLKHDR_4, BZ_X_BLKHDR_5, BZ_X_BLKHDR_6, BZ_X_CODING_1, BZ_X_CODING_2, BZ_X_CODING_3, BZ_X_MAGIC_1, BZ_X_MAGIC_2, BZ_X_MAGIC_3, BZ_X_MAGIC_4, BZ_X_MAPPING_1, BZ_X_MAPPING_2, BZ_X_MTF_1, BZ_X_MTF_2, BZ_X_MTF_3, BZ_X_MTF_4, BZ_X_MTF_5, BZ_X_MTF_6, BZ_X_ORIGPTR_1, BZ_X_ORIGPTR_2, BZ_X_ORIGPTR_3, BZ_X_OUTPUT, BZ_X_RANDBIT, BZ_X_SELECTOR_1, BZ_X_SELECTOR_2, BZ_X_SELECTOR_3, BZALLOC, DState::calculatedBlockCRC, DState::cftab, DState::cftabCopy, DState::currBlockNo, False, GET_BIT, GET_BITS, GET_LL, GET_MTF_VAL, GET_UCHAR, DState::inUse, DState::inUse16, DState::k0, DState::ll16, DState::ll4, makeMaps_d(), DState::mtfa, MTFA_SIZE, DState::mtfbase, MTFL_SIZE, DState::nblock_used, DState::origPtr, RETURN, DState::save_alphaSize, DState::save_curr, DState::save_EOB, DState::save_es, DState::save_gBase, DState::save_gLimit, DState::save_gMinlen, DState::save_gPerm, DState::save_groupNo, DState::save_groupPos, DState::save_gSel, DState::save_i, DState::save_j, DState::save_N, DState::save_nblock, DState::save_nblockMAX, DState::save_nextSym, DState::save_nGroups, DState::save_nSelectors, DState::save_t, DState::save_zj, DState::save_zn, DState::save_zt, DState::save_zvec, DState::seqToUnseq, SET_LL, DState::smallDecompress, DState::state, DState::state_out_ch, DState::state_out_len, DState::storedBlockCRC, DState::strm, DState::tPos, True, DState::tt, DState::unzftab, DState::verbosity, VPrintf0, and VPrintf1.

Referenced by BZ2_bzDecompress().

static void makeMaps_d ( DState s  )  [static]

Definition at line 67 of file decompress.c.

References DState::inUse, DState::nInUse, and DState::seqToUnseq.

Referenced by BZ2_decompress().