aboutsummaryrefslogtreecommitdiff
path: root/dep/src/zlib/inffast.c
diff options
context:
space:
mode:
Diffstat (limited to 'dep/src/zlib/inffast.c')
-rw-r--r--dep/src/zlib/inffast.c17
1 files changed, 0 insertions, 17 deletions
diff --git a/dep/src/zlib/inffast.c b/dep/src/zlib/inffast.c
index bbee92ed1e6..25f57b424c0 100644
--- a/dep/src/zlib/inffast.c
+++ b/dep/src/zlib/inffast.c
@@ -2,14 +2,11 @@
* Copyright (C) 1995-2004 Mark Adler
* For conditions of distribution and use, see copyright notice in zlib.h
*/
-
#include "zutil.h"
#include "inftrees.h"
#include "inflate.h"
#include "inffast.h"
-
#ifndef ASMINF
-
/* Allow machine dependent optimization for post-increment or pre-increment.
Based on testing to date,
Pre-increment preferred for:
@@ -28,7 +25,6 @@
# define OFF 1
# define PUP(a) *++(a)
#endif
-
/*
Decode literal, length, and distance codes and write out the resulting
literal and match bytes until either not enough input or output is
@@ -36,29 +32,22 @@
When large enough input and output buffers are supplied to inflate(), for
example, a 16K input buffer and a 64K output buffer, more than 95% of the
inflate execution time is spent in this routine.
-
Entry assumptions:
-
state->mode == LEN
strm->avail_in >= 6
strm->avail_out >= 258
start >= strm->avail_out
state->bits < 8
-
On return, state->mode is one of:
-
LEN -- ran out of enough output space or enough available input
TYPE -- reached end of block code, inflate() to interpret next block
BAD -- error in block data
-
Notes:
-
- The maximum input bits used by a length/distance pair is 15 bits for the
length code, 5 bits for the length extra, 15 bits for the distance code,
and 13 bits for the distance extra. This totals 48 bits, or six bytes.
Therefore if strm->avail_in >= 6, then there is enough input to avoid
checking for available input while decoding.
-
- The maximum bytes that a single length/distance pair can output is 258
bytes, which is the maximum length that can be coded. inflate_fast()
requires strm->avail_out >= 258 for each loop to avoid checking for
@@ -93,7 +82,6 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */
unsigned len; /* match length, unused bytes */
unsigned dist; /* match distance */
unsigned char FAR *from; /* where to copy match from */
-
/* copy state to local variables */
state = (struct inflate_state FAR *)strm->state;
in = strm->next_in - OFF;
@@ -114,7 +102,6 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */
dcode = state->distcode;
lmask = (1U << state->lenbits) - 1;
dmask = (1U << state->distbits) - 1;
-
/* decode literals and length/distances until end-of-block or not enough
input data or output space */
do {
@@ -283,13 +270,11 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */
break;
}
} while (in < last && out < end);
-
/* return unused bytes (on entry, bits < 8, so in won't go too far back) */
len = bits >> 3;
in -= len;
bits -= len << 3;
hold &= (1U << bits) - 1;
-
/* update state and return */
strm->next_in = in + OFF;
strm->next_out = out + OFF;
@@ -300,7 +285,6 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */
state->bits = bits;
return;
}
-
/*
inflate_fast() speedups that turned out slower (on a PowerPC G3 750CXe):
- Using bit fields for code structure
@@ -314,5 +298,4 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */
- Larger unrolled copy loops (three is about right)
- Moving len -= 3 statement into middle of loop
*/
-
#endif /* !ASMINF */