gzip: reduce global data footprint, part 3
No binary (build failed)
—
(log yok)
| @@ -355,8 +355,8 @@ struct global1 { | |
| uint32_t crc; /* shift register contents */ | |
| }; | |
| - | extern struct global1 *global_ptr; |
| - | #define G1 (*(global_ptr - 1)) |
| + | extern struct global1 *ptr_to_globals; |
| + | #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) | |
| @@ -2131,8 +2131,8 @@ int gzip_main(int argc, char **argv) | |
| } | |
| #endif | |
| - | global_ptr = xzalloc(sizeof(struct global1) + sizeof(struct global2)); |
| - | global_ptr++; |
| + | ptr_to_globals = xzalloc(sizeof(struct global1) + sizeof(struct global2)); |
| + | ptr_to_globals++; |
| G2.l_desc.dyn_tree = G2.dyn_ltree; | |
| G2.l_desc.static_tree = G2.static_ltree; | |
| G2.l_desc.extra_bits = extra_lbits; | |
| @@ -455,6 +455,8 @@ static int huft_build(unsigned *b, const unsigned n, | |
| * bl, bd: number of bits decoded by tl[] and td[] | |
| */ | |
| /* called once from inflate_block */ | |
| + | |
| + | /* map formerly local static variables to globals */ |
| #define ml inflate_codes_ml | |
| #define md inflate_codes_md | |
| #define bb inflate_codes_bb | |
| @@ -56,4 +56,4 @@ WTMP_FILE; | |
| char bb_common_bufsiz1[BUFSIZ+1]; | |
| - | void *global_ptr; |
| + | void *ptr_to_globals; |