summaryrefslogtreecommitdiff
path: root/infback.c
diff options
context:
space:
mode:
authorHans Kristian Rosbach <hk-git@circlestorm.org>2019-07-18 16:17:49 +0200
committerHans Kristian Rosbach <hk-github@circlestorm.org>2019-08-06 09:39:26 +0200
commit4bc6ffa41a7a23e04a2da409ca512a73cf268382 (patch)
tree4bcc8edfb3630888d25ece2ab72683f391d8d490 /infback.c
parentd8eedcfa3e391cca6d247ebde2f5c64bd64582d6 (diff)
Deduplicate inflate's fixedtables(), and no longer inline the inffixed tables.
This also reduces the library size by 4120bytes or ~2.9%.
Diffstat (limited to 'infback.c')
-rw-r--r--infback.c52
1 files changed, 0 insertions, 52 deletions
diff --git a/infback.c b/infback.c
index e3886b5..27b7b9b 100644
--- a/infback.c
+++ b/infback.c
@@ -17,9 +17,6 @@
#include "inffast.h"
#include "inflate_p.h"
-/* function prototypes */
-static void fixedtables(struct inflate_state *state);
-
/*
strm provides memory allocation functions in zalloc and zfree, or
NULL to use the library memory allocation functions.
@@ -57,55 +54,6 @@ int ZEXPORT PREFIX(inflateBackInit_)(PREFIX3(stream) *strm, int windowBits, unsi
}
/*
- Return state with length and distance decoding tables and index sizes set to
- fixed code decoding. Normally this returns fixed tables from inffixed.h.
- If BUILDFIXED is defined, then instead this routine builds the tables the
- first time it's called, and returns those tables the first time and
- thereafter. This reduces the size of the code by about 2K bytes, in
- exchange for a little execution time. However, BUILDFIXED should not be
- used for threaded applications, since the rewriting of the tables and virgin
- may not be thread-safe.
- */
-static void fixedtables(struct inflate_state *state) {
-#ifdef BUILDFIXED
- static int virgin = 1;
- static code *lenfix, *distfix;
- static code fixed[544];
-
- /* build fixed huffman tables if first call (may not be thread safe) */
- if (virgin) {
- unsigned sym, bits;
- static code *next;
-
- /* literal/length table */
- sym = 0;
- while (sym < 144) state->lens[sym++] = 8;
- while (sym < 256) state->lens[sym++] = 9;
- while (sym < 280) state->lens[sym++] = 7;
- while (sym < 288) state->lens[sym++] = 8;
- next = fixed;
- lenfix = next;
- bits = 9;
- zng_inflate_table(LENS, state->lens, 288, &(next), &(bits), state->work);
-
- /* distance table */
- sym = 0;
- while (sym < 32) state->lens[sym++] = 5;
- distfix = next;
- bits = 5;
- zng_inflate_table(DISTS, state->lens, 32, &(next), &(bits), state->work);
-
- /* do this just once */
- virgin = 0;
- }
-#else /* !BUILDFIXED */
-# include "inffixed.h"
-#endif /* BUILDFIXED */
- state->lencode = lenfix;
- state->lenbits = 9;
- state->distcode = distfix;
- state->distbits = 5;
-}
Private macros for inflateBack()
Look in inflate_p.h for macros shared with inflate()
*/