/* inftree9.h -- header to use inftree9.c *Copyright(C)1995-2008MarkAdler *Forconditionsofdistributionanduse,seecopyrightnoticeinzlib.h
*/
/* WARNING: this file should *not* be used by applications. It is partoftheimplementationofthecompressionlibraryandis subjecttochange.Applicationsshouldonlyusezlib.h.
*/
/* Structure for decoding tables. Each entry provides either the informationneededtodotheoperationrequestedbythecodethat indexedthattableentry,oritprovidesapointertoanother tablethatindexesmorebitsofthecode.opindicateswhether theentryisapointertoanothertable,aliteral,alengthor distance,anend-of-block,oraninvalidcode.Foratable pointer,thelowfourbitsofopisthenumberofindexbitsof thattable.Foralengthordistance,thelowfourbitsofop isthenumberofextrabitstogetafterthecode.bitsis thenumberofbitsinthiscodeorpartofthecodetodropoff ofthebitbuffer.valistheactualbytetooutputinthecase ofaliteral,thebaselengthordistance,ortheoffsetfrom
the current table to the next table. Each entry is four bytes. */ typedefstruct { unsignedchar op; /* operation, extra bits, table bits */ unsignedchar bits; /* bits in this part of the code */ unsignedshort val; /* offset in table or code value */
} code;
/* op values as set by inflate_table(): 00000000-literal 0000tttt-tablelink,tttt!=0isthenumberoftableindexbits 100eeeee-lengthordistance,eeeeisthenumberofextrabits 01100000-endofblock 01000000-invalidcode
*/
/* Maximum size of the dynamic table. The maximum number of code structures is 1446,whichisthesumof852forliteral/lengthcodesand594fordistance codes.Thesevalueswerefoundbyexhaustivesearchesusingtheprogram examples/enough.cfoundinthezlibdistribution.Theargumentstothat programarethenumberofsymbols,theinitialroottablesize,andthe maximumbitlengthofacode."enough286915"forliteral/lengthcodes returnsreturns852,and"enough32615"fordistancecodesreturns594. Theinitialroottablesize(9or6)isfoundinthefifthargumentofthe inflate_table()callsininfback9.c.Iftheroottablesizeischanged,
then these maximum sizes would be need to be recalculated and updated. */ #define ENOUGH_LENS 852 #define ENOUGH_DISTS 594 #define ENOUGH (ENOUGH_LENS+ENOUGH_DISTS)
/* Type of code to build for inflate_table9() */ typedefenum {
CODES,
LENS,
DISTS
} codetype;
externint inflate_table9(codetype type, unsignedshort FAR *lens, unsigned codes, code FAR * FAR *table, unsigned FAR *bits, unsignedshort FAR *work);
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet am 2026-06-18)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.