* the stream.
*/
-static ulg __initdata bb; /* bit buffer */
-static unsigned __initdata bk; /* bits in bit buffer */
-
static const ush mask_bits[] = {
0x0000,
0x0001, 0x0003, 0x0007, 0x000f, 0x001f, 0x003f, 0x007f, 0x00ff,
/* make local copies of globals */
- b = bb; /* initialize bit buffer */
- k = bk;
+ b = s->bb; /* initialize bit buffer */
+ k = s->bk;
w = s->wp; /* initialize window position */
/* inflate the coded data */
/* restore the globals from the locals */
s->wp = w; /* restore global window position */
- bb = b; /* restore global bit buffer */
- bk = k;
+ s->bb = b; /* restore global bit buffer */
+ s->bk = k;
/* done */
return 0;
DEBG("<stor");
/* make local copies of globals */
- b = bb; /* initialize bit buffer */
- k = bk;
+ b = s->bb; /* initialize bit buffer */
+ k = s->bk;
w = s->wp; /* initialize window position */
/* restore the globals from the locals */
s->wp = w; /* restore global window position */
- bb = b; /* restore global bit buffer */
- bk = k;
+ s->bb = b; /* restore global bit buffer */
+ s->bk = k;
DEBG(">");
return 0;
return 1;
/* make local bit buffer */
- b = bb;
- k = bk;
+ b = s->bb;
+ k = s->bk;
/* read in table lengths */
NEEDBITS(s, 5);
DEBG("dyn5 ");
/* restore the global bit buffer */
- bb = b;
- bk = k;
+ s->bb = b;
+ s->bk = k;
DEBG("dyn5a ");
DEBG("<blk");
/* make local bit buffer */
- b = bb;
- k = bk;
+ b = s->bb;
+ k = s->bk;
/* read in last block bit */
NEEDBITS(s, 1);
DUMPBITS(2);
/* restore the global bit buffer */
- bb = b;
- bk = k;
+ s->bb = b;
+ s->bk = k;
/* inflate that block type */
if (t == 2)
/* initialize window, bit buffer */
s->wp = 0;
- bk = 0;
- bb = 0;
+ s->bk = 0;
+ s->bb = 0;
/* decompress until the last block */
do {
/* Undo too much lookahead. The next read will be byte aligned so we
* can discard unused bits in the last meaningful byte.
*/
- while (bk >= 8) {
- bk -= 8;
+ while ( s->bk >= 8 )
+ {
+ s->bk -= 8;
s->inptr--;
}