Skip to content
Snippets Groups Projects
Select Git revision
  • master
1 result

LineageWindow.html

Blame
  • decompress.c 22.15 KiB
    
    /*-------------------------------------------------------------*/
    /*--- Decompression machinery                               ---*/
    /*---                                          decompress.c ---*/
    /*-------------------------------------------------------------*/
    
    /* ------------------------------------------------------------------
       This file is part of bzip2/libbzip2, a program and library for
       lossless, block-sorting data compression.
    
       bzip2/libbzip2 version 1.0.4 of 20 December 2006
       Copyright (C) 1996-2006 Julian Seward <jseward@bzip.org>
    
       Please read the WARNING, DISCLAIMER and PATENTS sections in the 
       README file.
    
       This program is released under the terms of the license contained
       in the file LICENSE.
       ------------------------------------------------------------------ */
    
    
    #include "bzlib_private.h"
    
    
    /*---------------------------------------------------*/
    static
    void makeMaps_d ( DState* s )
    {
       Int32 i;
       s->nInUse = 0;
       for (i = 0; i < 256; i++)
          if (s->inUse[i]) {
             s->seqToUnseq[s->nInUse] = i;
             s->nInUse++;
          }
    }
    
    
    /*---------------------------------------------------*/
    #define RETURN(rrr)                               \
       { retVal = rrr; goto save_state_and_return; };
    
    #define GET_BITS(lll,vvv,nnn)                     \
       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++;                \
       }
    
    #define UNGET_BITS(nnn)                           \
       s->bsLive += nnn
    
    #define GET_UCHAR(lll,uuu)                        \