ZLIB
Loading...
Searching...
No Matches
inftrees.h File Reference

header to use inftrees.c Copyright (C) 1995-2005, 2010 Mark Adler For conditions of distribution and use, see copyright notice in zlib.h More...

Go to the source code of this file.

Data Structures

struct  code
 Structure for decoding tables. More...
 

Macros

#define ENOUGH_LENS   852
 Maximum size of the dynamic table.
 
#define ENOUGH_DISTS   592
 
#define ENOUGH   (ENOUGH_LENS+ENOUGH_DISTS)
 

Enumerations

enum  codetype { CODES , LENS , DISTS }
 Type of code to build for inflate_table()
 

Functions

int ZLIB_INTERNAL inflate_table (codetype type, unsigned short *lens, unsigned codes, code **table, unsigned *bits, unsigned short *work)
 

Detailed Description

header to use inftrees.c Copyright (C) 1995-2005, 2010 Mark Adler For conditions of distribution and use, see copyright notice in zlib.h

Warning
This file should not be used by applications. It is part of the implementation of the compression library and is subject to change. Applications should only use zlib.h.

Macro Definition Documentation

◆ ENOUGH_LENS

#define ENOUGH_LENS   852

Maximum size of the dynamic table.

The maximum number of code structures is 1444, which is the sum of 852 for literal/length codes and 592 for distance codes. These values were found by exhaustive searches using the program examples/enough.c found in the zlib distribution. The arguments to that program are the number of symbols, the initial root table size, and the maximum bit length of a code. "enough 286 9 15" for literal/length codes returns returns 852, and "enough 30 6 15" for distance codes returns 592. The initial root table size (9 or 6) is found in the fifth argument of the inflate_table() calls in inflate.c and infback.c. If the root table size is changed, then these maximum sizes would be need to be recalculated and updated.