gzip: reduce global data footprint, part 3

This commit is contained in:
Denis Vlasenko 2007-03-14 00:06:51 +00:00
parent da799e8227
commit 07766bb0e7
3 changed files with 8 additions and 6 deletions

View File

@ -355,8 +355,8 @@ struct global1 {
uint32_t crc; /* shift register contents */ uint32_t crc; /* shift register contents */
}; };
extern struct global1 *global_ptr; extern struct global1 *ptr_to_globals;
#define G1 (*(global_ptr - 1)) #define G1 (*(ptr_to_globals - 1))
/* =========================================================================== /* ===========================================================================
@ -972,7 +972,7 @@ struct global2 {
}; };
#define G2ptr ((struct global2*)(global_ptr)) #define G2ptr ((struct global2*)(ptr_to_globals))
#define G2 (*G2ptr) #define G2 (*G2ptr)
@ -2131,8 +2131,8 @@ int gzip_main(int argc, char **argv)
} }
#endif #endif
global_ptr = xzalloc(sizeof(struct global1) + sizeof(struct global2)); ptr_to_globals = xzalloc(sizeof(struct global1) + sizeof(struct global2));
global_ptr++; ptr_to_globals++;
G2.l_desc.dyn_tree = G2.dyn_ltree; G2.l_desc.dyn_tree = G2.dyn_ltree;
G2.l_desc.static_tree = G2.static_ltree; G2.l_desc.static_tree = G2.static_ltree;
G2.l_desc.extra_bits = extra_lbits; G2.l_desc.extra_bits = extra_lbits;

View File

@ -455,6 +455,8 @@ static int huft_build(unsigned *b, const unsigned n,
* bl, bd: number of bits decoded by tl[] and td[] * bl, bd: number of bits decoded by tl[] and td[]
*/ */
/* called once from inflate_block */ /* called once from inflate_block */
/* map formerly local static variables to globals */
#define ml inflate_codes_ml #define ml inflate_codes_ml
#define md inflate_codes_md #define md inflate_codes_md
#define bb inflate_codes_bb #define bb inflate_codes_bb

View File

@ -56,4 +56,4 @@ WTMP_FILE;
char bb_common_bufsiz1[BUFSIZ+1]; char bb_common_bufsiz1[BUFSIZ+1];
void *global_ptr; void *ptr_to_globals;