| --- busybox-1.14.0/archival/gzip.c Tue Apr 14 01:42:55 2009 |
| +++ busybox-1.14.0-gzip/archival/gzip.c Mon May 18 22:36:12 2009 |
| @@ -389,19 +389,6 @@ |
| } |
| |
| /* =========================================================================== |
| - * Clear input and output buffers |
| - */ |
| -static void clear_bufs(void) |
| -{ |
| - G1.outcnt = 0; |
| -#ifdef DEBUG |
| - G1.insize = 0; |
| -#endif |
| - G1.isize = 0; |
| -} |
| - |
| - |
| -/* =========================================================================== |
| * Run a set of bytes through the crc shift register. If s is a NULL |
| * pointer, then initialize the crc shift register contents instead. |
| * Return the current crc in either case. |
| @@ -2019,7 +2006,37 @@ |
| { |
| struct stat s; |
| |
| - clear_bufs(); |
| + /* Clear input and output buffers */ |
| + G1.outcnt = 0; |
| +#ifdef DEBUG |
| + G1.insize = 0; |
| +#endif |
| + G1.isize = 0; |
| + |
| + /* Reinit G2.xxx */ |
| + memset(&G2, 0, sizeof(G2)); |
| + G2.l_desc.dyn_tree = G2.dyn_ltree; |
| + G2.l_desc.static_tree = G2.static_ltree; |
| + G2.l_desc.extra_bits = extra_lbits; |
| + G2.l_desc.extra_base = LITERALS + 1; |
| + G2.l_desc.elems = L_CODES; |
| + G2.l_desc.max_length = MAX_BITS; |
| + //G2.l_desc.max_code = 0; |
| + G2.d_desc.dyn_tree = G2.dyn_dtree; |
| + G2.d_desc.static_tree = G2.static_dtree; |
| + G2.d_desc.extra_bits = extra_dbits; |
| + //G2.d_desc.extra_base = 0; |
| + G2.d_desc.elems = D_CODES; |
| + G2.d_desc.max_length = MAX_BITS; |
| + //G2.d_desc.max_code = 0; |
| + G2.bl_desc.dyn_tree = G2.bl_tree; |
| + //G2.bl_desc.static_tree = NULL; |
| + G2.bl_desc.extra_bits = extra_blbits, |
| + //G2.bl_desc.extra_base = 0; |
| + G2.bl_desc.elems = BL_CODES; |
| + G2.bl_desc.max_length = MAX_BL_BITS; |
| + //G2.bl_desc.max_code = 0; |
| + |
| s.st_ctime = 0; |
| fstat(STDIN_FILENO, &s); |
| zip(s.st_ctime); |
| @@ -2064,29 +2081,6 @@ |
| SET_PTR_TO_GLOBALS(xzalloc(sizeof(struct globals) + sizeof(struct globals2)) |
| + sizeof(struct globals)); |
| barrier(); |
| - G2.l_desc.dyn_tree = G2.dyn_ltree; |
| - G2.l_desc.static_tree = G2.static_ltree; |
| - G2.l_desc.extra_bits = extra_lbits; |
| - G2.l_desc.extra_base = LITERALS + 1; |
| - G2.l_desc.elems = L_CODES; |
| - G2.l_desc.max_length = MAX_BITS; |
| - //G2.l_desc.max_code = 0; |
| - |
| - G2.d_desc.dyn_tree = G2.dyn_dtree; |
| - G2.d_desc.static_tree = G2.static_dtree; |
| - G2.d_desc.extra_bits = extra_dbits; |
| - //G2.d_desc.extra_base = 0; |
| - G2.d_desc.elems = D_CODES; |
| - G2.d_desc.max_length = MAX_BITS; |
| - //G2.d_desc.max_code = 0; |
| - |
| - G2.bl_desc.dyn_tree = G2.bl_tree; |
| - //G2.bl_desc.static_tree = NULL; |
| - G2.bl_desc.extra_bits = extra_blbits, |
| - //G2.bl_desc.extra_base = 0; |
| - G2.bl_desc.elems = BL_CODES; |
| - G2.bl_desc.max_length = MAX_BL_BITS; |
| - //G2.bl_desc.max_code = 0; |
| |
| /* Allocate all global buffers (for DYN_ALLOC option) */ |
| ALLOC(uch, G1.l_buf, INBUFSIZ); |