1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024 |
- --- a/include/linux/lzma/LzmaDec.h
- +++ b/include/linux/lzma/LzmaDec.h
- @@ -31,14 +31,6 @@ typedef struct _CLzmaProps
- UInt32 dicSize;
- } CLzmaProps;
-
- -/* LzmaProps_Decode - decodes properties
- -Returns:
- - SZ_OK
- - SZ_ERROR_UNSUPPORTED - Unsupported properties
- -*/
- -
- -SRes LzmaProps_Decode(CLzmaProps *p, const Byte *data, unsigned size);
- -
-
- /* ---------- LZMA Decoder state ---------- */
-
- @@ -70,8 +62,6 @@ typedef struct
-
- #define LzmaDec_Construct(p) { (p)->dic = 0; (p)->probs = 0; }
-
- -void LzmaDec_Init(CLzmaDec *p);
- -
- /* There are two types of LZMA streams:
- 0) Stream with end mark. That end mark adds about 6 bytes to compressed size.
- 1) Stream without end mark. You must know exact uncompressed size to decompress such stream. */
- @@ -108,97 +98,6 @@ typedef enum
-
- /* ELzmaStatus is used only as output value for function call */
-
- -
- -/* ---------- Interfaces ---------- */
- -
- -/* There are 3 levels of interfaces:
- - 1) Dictionary Interface
- - 2) Buffer Interface
- - 3) One Call Interface
- - You can select any of these interfaces, but don't mix functions from different
- - groups for same object. */
- -
- -
- -/* There are two variants to allocate state for Dictionary Interface:
- - 1) LzmaDec_Allocate / LzmaDec_Free
- - 2) LzmaDec_AllocateProbs / LzmaDec_FreeProbs
- - You can use variant 2, if you set dictionary buffer manually.
- - For Buffer Interface you must always use variant 1.
- -
- -LzmaDec_Allocate* can return:
- - SZ_OK
- - SZ_ERROR_MEM - Memory allocation error
- - SZ_ERROR_UNSUPPORTED - Unsupported properties
- -*/
- -
- -SRes LzmaDec_AllocateProbs(CLzmaDec *p, const Byte *props, unsigned propsSize, ISzAlloc *alloc);
- -void LzmaDec_FreeProbs(CLzmaDec *p, ISzAlloc *alloc);
- -
- -SRes LzmaDec_Allocate(CLzmaDec *state, const Byte *prop, unsigned propsSize, ISzAlloc *alloc);
- -void LzmaDec_Free(CLzmaDec *state, ISzAlloc *alloc);
- -
- -/* ---------- Dictionary Interface ---------- */
- -
- -/* You can use it, if you want to eliminate the overhead for data copying from
- - dictionary to some other external buffer.
- - You must work with CLzmaDec variables directly in this interface.
- -
- - STEPS:
- - LzmaDec_Constr()
- - LzmaDec_Allocate()
- - for (each new stream)
- - {
- - LzmaDec_Init()
- - while (it needs more decompression)
- - {
- - LzmaDec_DecodeToDic()
- - use data from CLzmaDec::dic and update CLzmaDec::dicPos
- - }
- - }
- - LzmaDec_Free()
- -*/
- -
- -/* LzmaDec_DecodeToDic
- -
- - The decoding to internal dictionary buffer (CLzmaDec::dic).
- - You must manually update CLzmaDec::dicPos, if it reaches CLzmaDec::dicBufSize !!!
- -
- -finishMode:
- - It has meaning only if the decoding reaches output limit (dicLimit).
- - LZMA_FINISH_ANY - Decode just dicLimit bytes.
- - LZMA_FINISH_END - Stream must be finished after dicLimit.
- -
- -Returns:
- - SZ_OK
- - status:
- - LZMA_STATUS_FINISHED_WITH_MARK
- - LZMA_STATUS_NOT_FINISHED
- - LZMA_STATUS_NEEDS_MORE_INPUT
- - LZMA_STATUS_MAYBE_FINISHED_WITHOUT_MARK
- - SZ_ERROR_DATA - Data error
- -*/
- -
- -SRes LzmaDec_DecodeToDic(CLzmaDec *p, SizeT dicLimit,
- - const Byte *src, SizeT *srcLen, ELzmaFinishMode finishMode, ELzmaStatus *status);
- -
- -
- -/* ---------- Buffer Interface ---------- */
- -
- -/* It's zlib-like interface.
- - See LzmaDec_DecodeToDic description for information about STEPS and return results,
- - but you must use LzmaDec_DecodeToBuf instead of LzmaDec_DecodeToDic and you don't need
- - to work with CLzmaDec variables manually.
- -
- -finishMode:
- - It has meaning only if the decoding reaches output limit (*destLen).
- - LZMA_FINISH_ANY - Decode just destLen bytes.
- - LZMA_FINISH_END - Stream must be finished after (*destLen).
- -*/
- -
- -SRes LzmaDec_DecodeToBuf(CLzmaDec *p, Byte *dest, SizeT *destLen,
- - const Byte *src, SizeT *srcLen, ELzmaFinishMode finishMode, ELzmaStatus *status);
- -
- -
- /* ---------- One Call Interface ---------- */
-
- /* LzmaDecode
- --- a/lib/lzma/LzmaDec.c
- +++ b/lib/lzma/LzmaDec.c
- @@ -682,7 +682,7 @@ static void LzmaDec_InitRc(CLzmaDec *p,
- p->needFlush = 0;
- }
-
- -void LzmaDec_InitDicAndState(CLzmaDec *p, Bool initDic, Bool initState)
- +static void LzmaDec_InitDicAndState(CLzmaDec *p, Bool initDic, Bool initState)
- {
- p->needFlush = 1;
- p->remainLen = 0;
- @@ -698,7 +698,7 @@ void LzmaDec_InitDicAndState(CLzmaDec *p
- p->needInitState = 1;
- }
-
- -void LzmaDec_Init(CLzmaDec *p)
- +static void LzmaDec_Init(CLzmaDec *p)
- {
- p->dicPos = 0;
- LzmaDec_InitDicAndState(p, True, True);
- @@ -716,7 +716,7 @@ static void LzmaDec_InitStateReal(CLzmaD
- p->needInitState = 0;
- }
-
- -SRes LzmaDec_DecodeToDic(CLzmaDec *p, SizeT dicLimit, const Byte *src, SizeT *srcLen,
- +static SRes LzmaDec_DecodeToDic(CLzmaDec *p, SizeT dicLimit, const Byte *src, SizeT *srcLen,
- ELzmaFinishMode finishMode, ELzmaStatus *status)
- {
- SizeT inSize = *srcLen;
- @@ -837,65 +837,13 @@ SRes LzmaDec_DecodeToDic(CLzmaDec *p, Si
- return (p->code == 0) ? SZ_OK : SZ_ERROR_DATA;
- }
-
- -SRes LzmaDec_DecodeToBuf(CLzmaDec *p, Byte *dest, SizeT *destLen, const Byte *src, SizeT *srcLen, ELzmaFinishMode finishMode, ELzmaStatus *status)
- -{
- - SizeT outSize = *destLen;
- - SizeT inSize = *srcLen;
- - *srcLen = *destLen = 0;
- - for (;;)
- - {
- - SizeT inSizeCur = inSize, outSizeCur, dicPos;
- - ELzmaFinishMode curFinishMode;
- - SRes res;
- - if (p->dicPos == p->dicBufSize)
- - p->dicPos = 0;
- - dicPos = p->dicPos;
- - if (outSize > p->dicBufSize - dicPos)
- - {
- - outSizeCur = p->dicBufSize;
- - curFinishMode = LZMA_FINISH_ANY;
- - }
- - else
- - {
- - outSizeCur = dicPos + outSize;
- - curFinishMode = finishMode;
- - }
- -
- - res = LzmaDec_DecodeToDic(p, outSizeCur, src, &inSizeCur, curFinishMode, status);
- - src += inSizeCur;
- - inSize -= inSizeCur;
- - *srcLen += inSizeCur;
- - outSizeCur = p->dicPos - dicPos;
- - memcpy(dest, p->dic + dicPos, outSizeCur);
- - dest += outSizeCur;
- - outSize -= outSizeCur;
- - *destLen += outSizeCur;
- - if (res != 0)
- - return res;
- - if (outSizeCur == 0 || outSize == 0)
- - return SZ_OK;
- - }
- -}
- -
- -void LzmaDec_FreeProbs(CLzmaDec *p, ISzAlloc *alloc)
- +static void LzmaDec_FreeProbs(CLzmaDec *p, ISzAlloc *alloc)
- {
- alloc->Free(alloc, p->probs);
- p->probs = 0;
- }
-
- -static void LzmaDec_FreeDict(CLzmaDec *p, ISzAlloc *alloc)
- -{
- - alloc->Free(alloc, p->dic);
- - p->dic = 0;
- -}
- -
- -void LzmaDec_Free(CLzmaDec *p, ISzAlloc *alloc)
- -{
- - LzmaDec_FreeProbs(p, alloc);
- - LzmaDec_FreeDict(p, alloc);
- -}
- -
- -SRes LzmaProps_Decode(CLzmaProps *p, const Byte *data, unsigned size)
- +static SRes LzmaProps_Decode(CLzmaProps *p, const Byte *data, unsigned size)
- {
- UInt32 dicSize;
- Byte d;
- @@ -935,7 +883,7 @@ static SRes LzmaDec_AllocateProbs2(CLzma
- return SZ_OK;
- }
-
- -SRes LzmaDec_AllocateProbs(CLzmaDec *p, const Byte *props, unsigned propsSize, ISzAlloc *alloc)
- +static SRes LzmaDec_AllocateProbs(CLzmaDec *p, const Byte *props, unsigned propsSize, ISzAlloc *alloc)
- {
- CLzmaProps propNew;
- RINOK(LzmaProps_Decode(&propNew, props, propsSize));
- @@ -943,28 +891,6 @@ SRes LzmaDec_AllocateProbs(CLzmaDec *p,
- p->prop = propNew;
- return SZ_OK;
- }
- -
- -SRes LzmaDec_Allocate(CLzmaDec *p, const Byte *props, unsigned propsSize, ISzAlloc *alloc)
- -{
- - CLzmaProps propNew;
- - SizeT dicBufSize;
- - RINOK(LzmaProps_Decode(&propNew, props, propsSize));
- - RINOK(LzmaDec_AllocateProbs2(p, &propNew, alloc));
- - dicBufSize = propNew.dicSize;
- - if (p->dic == 0 || dicBufSize != p->dicBufSize)
- - {
- - LzmaDec_FreeDict(p, alloc);
- - p->dic = (Byte *)alloc->Alloc(alloc, dicBufSize);
- - if (p->dic == 0)
- - {
- - LzmaDec_FreeProbs(p, alloc);
- - return SZ_ERROR_MEM;
- - }
- - }
- - p->dicBufSize = dicBufSize;
- - p->prop = propNew;
- - return SZ_OK;
- -}
-
- SRes LzmaDecode(Byte *dest, SizeT *destLen, const Byte *src, SizeT *srcLen,
- const Byte *propData, unsigned propSize, ELzmaFinishMode finishMode,
- --- a/include/linux/lzma/LzmaEnc.h
- +++ b/include/linux/lzma/LzmaEnc.h
- @@ -31,9 +31,6 @@ typedef struct _CLzmaEncProps
- } CLzmaEncProps;
-
- void LzmaEncProps_Init(CLzmaEncProps *p);
- -void LzmaEncProps_Normalize(CLzmaEncProps *p);
- -UInt32 LzmaEncProps_GetDictSize(const CLzmaEncProps *props2);
- -
-
- /* ---------- CLzmaEncHandle Interface ---------- */
-
- @@ -53,26 +50,9 @@ CLzmaEncHandle LzmaEnc_Create(ISzAlloc *
- void LzmaEnc_Destroy(CLzmaEncHandle p, ISzAlloc *alloc, ISzAlloc *allocBig);
- SRes LzmaEnc_SetProps(CLzmaEncHandle p, const CLzmaEncProps *props);
- SRes LzmaEnc_WriteProperties(CLzmaEncHandle p, Byte *properties, SizeT *size);
- -SRes LzmaEnc_Encode(CLzmaEncHandle p, ISeqOutStream *outStream, ISeqInStream *inStream,
- - ICompressProgress *progress, ISzAlloc *alloc, ISzAlloc *allocBig);
- SRes LzmaEnc_MemEncode(CLzmaEncHandle p, Byte *dest, SizeT *destLen, const Byte *src, SizeT srcLen,
- int writeEndMark, ICompressProgress *progress, ISzAlloc *alloc, ISzAlloc *allocBig);
-
- -/* ---------- One Call Interface ---------- */
- -
- -/* LzmaEncode
- -Return code:
- - SZ_OK - OK
- - SZ_ERROR_MEM - Memory allocation error
- - SZ_ERROR_PARAM - Incorrect paramater
- - SZ_ERROR_OUTPUT_EOF - output buffer overflow
- - SZ_ERROR_THREAD - errors in multithreading functions (only for Mt version)
- -*/
- -
- -SRes LzmaEncode(Byte *dest, SizeT *destLen, const Byte *src, SizeT srcLen,
- - const CLzmaEncProps *props, Byte *propsEncoded, SizeT *propsSize, int writeEndMark,
- - ICompressProgress *progress, ISzAlloc *alloc, ISzAlloc *allocBig);
- -
- #ifdef __cplusplus
- }
- #endif
- --- a/lib/lzma/LzmaEnc.c
- +++ b/lib/lzma/LzmaEnc.c
- @@ -53,7 +53,7 @@ void LzmaEncProps_Init(CLzmaEncProps *p)
- p->writeEndMark = 0;
- }
-
- -void LzmaEncProps_Normalize(CLzmaEncProps *p)
- +static void LzmaEncProps_Normalize(CLzmaEncProps *p)
- {
- int level = p->level;
- if (level < 0) level = 5;
- @@ -76,7 +76,7 @@ void LzmaEncProps_Normalize(CLzmaEncProp
- #endif
- }
-
- -UInt32 LzmaEncProps_GetDictSize(const CLzmaEncProps *props2)
- +static UInt32 __maybe_unused LzmaEncProps_GetDictSize(const CLzmaEncProps *props2)
- {
- CLzmaEncProps props = *props2;
- LzmaEncProps_Normalize(&props);
- @@ -93,7 +93,7 @@ UInt32 LzmaEncProps_GetDictSize(const CL
-
- #define BSR2_RET(pos, res) { unsigned long i; _BitScanReverse(&i, (pos)); res = (i + i) + ((pos >> (i - 1)) & 1); }
-
- -UInt32 GetPosSlot1(UInt32 pos)
- +static UInt32 GetPosSlot1(UInt32 pos)
- {
- UInt32 res;
- BSR2_RET(pos, res);
- @@ -107,7 +107,7 @@ UInt32 GetPosSlot1(UInt32 pos)
- #define kNumLogBits (9 + (int)sizeof(size_t) / 2)
- #define kDicLogSizeMaxCompress ((kNumLogBits - 1) * 2 + 7)
-
- -void LzmaEnc_FastPosInit(Byte *g_FastPos)
- +static void LzmaEnc_FastPosInit(Byte *g_FastPos)
- {
- int c = 2, slotFast;
- g_FastPos[0] = 0;
- @@ -339,58 +339,6 @@ typedef struct
- CSaveState saveState;
- } CLzmaEnc;
-
- -void LzmaEnc_SaveState(CLzmaEncHandle pp)
- -{
- - CLzmaEnc *p = (CLzmaEnc *)pp;
- - CSaveState *dest = &p->saveState;
- - int i;
- - dest->lenEnc = p->lenEnc;
- - dest->repLenEnc = p->repLenEnc;
- - dest->state = p->state;
- -
- - for (i = 0; i < kNumStates; i++)
- - {
- - memcpy(dest->isMatch[i], p->isMatch[i], sizeof(p->isMatch[i]));
- - memcpy(dest->isRep0Long[i], p->isRep0Long[i], sizeof(p->isRep0Long[i]));
- - }
- - for (i = 0; i < kNumLenToPosStates; i++)
- - memcpy(dest->posSlotEncoder[i], p->posSlotEncoder[i], sizeof(p->posSlotEncoder[i]));
- - memcpy(dest->isRep, p->isRep, sizeof(p->isRep));
- - memcpy(dest->isRepG0, p->isRepG0, sizeof(p->isRepG0));
- - memcpy(dest->isRepG1, p->isRepG1, sizeof(p->isRepG1));
- - memcpy(dest->isRepG2, p->isRepG2, sizeof(p->isRepG2));
- - memcpy(dest->posEncoders, p->posEncoders, sizeof(p->posEncoders));
- - memcpy(dest->posAlignEncoder, p->posAlignEncoder, sizeof(p->posAlignEncoder));
- - memcpy(dest->reps, p->reps, sizeof(p->reps));
- - memcpy(dest->litProbs, p->litProbs, (0x300 << p->lclp) * sizeof(CLzmaProb));
- -}
- -
- -void LzmaEnc_RestoreState(CLzmaEncHandle pp)
- -{
- - CLzmaEnc *dest = (CLzmaEnc *)pp;
- - const CSaveState *p = &dest->saveState;
- - int i;
- - dest->lenEnc = p->lenEnc;
- - dest->repLenEnc = p->repLenEnc;
- - dest->state = p->state;
- -
- - for (i = 0; i < kNumStates; i++)
- - {
- - memcpy(dest->isMatch[i], p->isMatch[i], sizeof(p->isMatch[i]));
- - memcpy(dest->isRep0Long[i], p->isRep0Long[i], sizeof(p->isRep0Long[i]));
- - }
- - for (i = 0; i < kNumLenToPosStates; i++)
- - memcpy(dest->posSlotEncoder[i], p->posSlotEncoder[i], sizeof(p->posSlotEncoder[i]));
- - memcpy(dest->isRep, p->isRep, sizeof(p->isRep));
- - memcpy(dest->isRepG0, p->isRepG0, sizeof(p->isRepG0));
- - memcpy(dest->isRepG1, p->isRepG1, sizeof(p->isRepG1));
- - memcpy(dest->isRepG2, p->isRepG2, sizeof(p->isRepG2));
- - memcpy(dest->posEncoders, p->posEncoders, sizeof(p->posEncoders));
- - memcpy(dest->posAlignEncoder, p->posAlignEncoder, sizeof(p->posAlignEncoder));
- - memcpy(dest->reps, p->reps, sizeof(p->reps));
- - memcpy(dest->litProbs, p->litProbs, (0x300 << dest->lclp) * sizeof(CLzmaProb));
- -}
- -
- SRes LzmaEnc_SetProps(CLzmaEncHandle pp, const CLzmaEncProps *props2)
- {
- CLzmaEnc *p = (CLzmaEnc *)pp;
- @@ -600,7 +548,7 @@ static void LitEnc_EncodeMatched(CRangeE
- while (symbol < 0x10000);
- }
-
- -void LzmaEnc_InitPriceTables(UInt32 *ProbPrices)
- +static void LzmaEnc_InitPriceTables(UInt32 *ProbPrices)
- {
- UInt32 i;
- for (i = (1 << kNumMoveReducingBits) / 2; i < kBitModelTotal; i += (1 << kNumMoveReducingBits))
- @@ -1676,7 +1624,7 @@ static void FillDistancesPrices(CLzmaEnc
- p->matchPriceCount = 0;
- }
-
- -void LzmaEnc_Construct(CLzmaEnc *p)
- +static void LzmaEnc_Construct(CLzmaEnc *p)
- {
- RangeEnc_Construct(&p->rc);
- MatchFinder_Construct(&p->matchFinderBase);
- @@ -1709,7 +1657,7 @@ CLzmaEncHandle LzmaEnc_Create(ISzAlloc *
- return p;
- }
-
- -void LzmaEnc_FreeLits(CLzmaEnc *p, ISzAlloc *alloc)
- +static void LzmaEnc_FreeLits(CLzmaEnc *p, ISzAlloc *alloc)
- {
- alloc->Free(alloc, p->litProbs);
- alloc->Free(alloc, p->saveState.litProbs);
- @@ -1717,7 +1665,7 @@ void LzmaEnc_FreeLits(CLzmaEnc *p, ISzAl
- p->saveState.litProbs = 0;
- }
-
- -void LzmaEnc_Destruct(CLzmaEnc *p, ISzAlloc *alloc, ISzAlloc *allocBig)
- +static void LzmaEnc_Destruct(CLzmaEnc *p, ISzAlloc *alloc, ISzAlloc *allocBig)
- {
- #ifndef _7ZIP_ST
- MatchFinderMt_Destruct(&p->matchFinderMt, allocBig);
- @@ -1947,7 +1895,7 @@ static SRes LzmaEnc_Alloc(CLzmaEnc *p, U
- return SZ_OK;
- }
-
- -void LzmaEnc_Init(CLzmaEnc *p)
- +static void LzmaEnc_Init(CLzmaEnc *p)
- {
- UInt32 i;
- p->state = 0;
- @@ -2005,7 +1953,7 @@ void LzmaEnc_Init(CLzmaEnc *p)
- p->lpMask = (1 << p->lp) - 1;
- }
-
- -void LzmaEnc_InitPrices(CLzmaEnc *p)
- +static void LzmaEnc_InitPrices(CLzmaEnc *p)
- {
- if (!p->fastMode)
- {
- @@ -2037,26 +1985,6 @@ static SRes LzmaEnc_AllocAndInit(CLzmaEn
- return SZ_OK;
- }
-
- -static SRes LzmaEnc_Prepare(CLzmaEncHandle pp, ISeqOutStream *outStream, ISeqInStream *inStream,
- - ISzAlloc *alloc, ISzAlloc *allocBig)
- -{
- - CLzmaEnc *p = (CLzmaEnc *)pp;
- - p->matchFinderBase.stream = inStream;
- - p->needInit = 1;
- - p->rc.outStream = outStream;
- - return LzmaEnc_AllocAndInit(p, 0, alloc, allocBig);
- -}
- -
- -SRes LzmaEnc_PrepareForLzma2(CLzmaEncHandle pp,
- - ISeqInStream *inStream, UInt32 keepWindowSize,
- - ISzAlloc *alloc, ISzAlloc *allocBig)
- -{
- - CLzmaEnc *p = (CLzmaEnc *)pp;
- - p->matchFinderBase.stream = inStream;
- - p->needInit = 1;
- - return LzmaEnc_AllocAndInit(p, keepWindowSize, alloc, allocBig);
- -}
- -
- static void LzmaEnc_SetInputBuf(CLzmaEnc *p, const Byte *src, SizeT srcLen)
- {
- p->matchFinderBase.directInput = 1;
- @@ -2064,7 +1992,7 @@ static void LzmaEnc_SetInputBuf(CLzmaEnc
- p->matchFinderBase.directInputRem = srcLen;
- }
-
- -SRes LzmaEnc_MemPrepare(CLzmaEncHandle pp, const Byte *src, SizeT srcLen,
- +static SRes LzmaEnc_MemPrepare(CLzmaEncHandle pp, const Byte *src, SizeT srcLen,
- UInt32 keepWindowSize, ISzAlloc *alloc, ISzAlloc *allocBig)
- {
- CLzmaEnc *p = (CLzmaEnc *)pp;
- @@ -2074,7 +2002,7 @@ SRes LzmaEnc_MemPrepare(CLzmaEncHandle p
- return LzmaEnc_AllocAndInit(p, keepWindowSize, alloc, allocBig);
- }
-
- -void LzmaEnc_Finish(CLzmaEncHandle pp)
- +static void LzmaEnc_Finish(CLzmaEncHandle pp)
- {
- #ifndef _7ZIP_ST
- CLzmaEnc *p = (CLzmaEnc *)pp;
- @@ -2107,53 +2035,6 @@ static size_t MyWrite(void *pp, const vo
- return size;
- }
-
- -
- -UInt32 LzmaEnc_GetNumAvailableBytes(CLzmaEncHandle pp)
- -{
- - const CLzmaEnc *p = (CLzmaEnc *)pp;
- - return p->matchFinder.GetNumAvailableBytes(p->matchFinderObj);
- -}
- -
- -const Byte *LzmaEnc_GetCurBuf(CLzmaEncHandle pp)
- -{
- - const CLzmaEnc *p = (CLzmaEnc *)pp;
- - return p->matchFinder.GetPointerToCurrentPos(p->matchFinderObj) - p->additionalOffset;
- -}
- -
- -SRes LzmaEnc_CodeOneMemBlock(CLzmaEncHandle pp, Bool reInit,
- - Byte *dest, size_t *destLen, UInt32 desiredPackSize, UInt32 *unpackSize)
- -{
- - CLzmaEnc *p = (CLzmaEnc *)pp;
- - UInt64 nowPos64;
- - SRes res;
- - CSeqOutStreamBuf outStream;
- -
- - outStream.funcTable.Write = MyWrite;
- - outStream.data = dest;
- - outStream.rem = *destLen;
- - outStream.overflow = False;
- -
- - p->writeEndMark = False;
- - p->finished = False;
- - p->result = SZ_OK;
- -
- - if (reInit)
- - LzmaEnc_Init(p);
- - LzmaEnc_InitPrices(p);
- - nowPos64 = p->nowPos64;
- - RangeEnc_Init(&p->rc);
- - p->rc.outStream = &outStream.funcTable;
- -
- - res = LzmaEnc_CodeOneBlock(p, True, desiredPackSize, *unpackSize);
- -
- - *unpackSize = (UInt32)(p->nowPos64 - nowPos64);
- - *destLen -= outStream.rem;
- - if (outStream.overflow)
- - return SZ_ERROR_OUTPUT_EOF;
- -
- - return res;
- -}
- -
- static SRes LzmaEnc_Encode2(CLzmaEnc *p, ICompressProgress *progress)
- {
- SRes res = SZ_OK;
- @@ -2184,13 +2065,6 @@ static SRes LzmaEnc_Encode2(CLzmaEnc *p,
- return res;
- }
-
- -SRes LzmaEnc_Encode(CLzmaEncHandle pp, ISeqOutStream *outStream, ISeqInStream *inStream, ICompressProgress *progress,
- - ISzAlloc *alloc, ISzAlloc *allocBig)
- -{
- - RINOK(LzmaEnc_Prepare(pp, outStream, inStream, alloc, allocBig));
- - return LzmaEnc_Encode2((CLzmaEnc *)pp, progress);
- -}
- -
- SRes LzmaEnc_WriteProperties(CLzmaEncHandle pp, Byte *props, SizeT *size)
- {
- CLzmaEnc *p = (CLzmaEnc *)pp;
- @@ -2247,25 +2121,3 @@ SRes LzmaEnc_MemEncode(CLzmaEncHandle pp
- return SZ_ERROR_OUTPUT_EOF;
- return res;
- }
- -
- -SRes LzmaEncode(Byte *dest, SizeT *destLen, const Byte *src, SizeT srcLen,
- - const CLzmaEncProps *props, Byte *propsEncoded, SizeT *propsSize, int writeEndMark,
- - ICompressProgress *progress, ISzAlloc *alloc, ISzAlloc *allocBig)
- -{
- - CLzmaEnc *p = (CLzmaEnc *)LzmaEnc_Create(alloc);
- - SRes res;
- - if (p == 0)
- - return SZ_ERROR_MEM;
- -
- - res = LzmaEnc_SetProps(p, props);
- - if (res == SZ_OK)
- - {
- - res = LzmaEnc_WriteProperties(p, propsEncoded, propsSize);
- - if (res == SZ_OK)
- - res = LzmaEnc_MemEncode(p, dest, destLen, src, srcLen,
- - writeEndMark, progress, alloc, allocBig);
- - }
- -
- - LzmaEnc_Destroy(p, alloc, allocBig);
- - return res;
- -}
- --- a/include/linux/lzma/LzFind.h
- +++ b/include/linux/lzma/LzFind.h
- @@ -55,11 +55,6 @@ typedef struct _CMatchFinder
-
- #define Inline_MatchFinder_GetNumAvailableBytes(p) ((p)->streamPos - (p)->pos)
-
- -int MatchFinder_NeedMove(CMatchFinder *p);
- -Byte *MatchFinder_GetPointerToCurrentPos(CMatchFinder *p);
- -void MatchFinder_MoveBlock(CMatchFinder *p);
- -void MatchFinder_ReadIfRequired(CMatchFinder *p);
- -
- void MatchFinder_Construct(CMatchFinder *p);
-
- /* Conditions:
- @@ -70,12 +65,6 @@ int MatchFinder_Create(CMatchFinder *p,
- UInt32 keepAddBufferBefore, UInt32 matchMaxLen, UInt32 keepAddBufferAfter,
- ISzAlloc *alloc);
- void MatchFinder_Free(CMatchFinder *p, ISzAlloc *alloc);
- -void MatchFinder_Normalize3(UInt32 subValue, CLzRef *items, UInt32 numItems);
- -void MatchFinder_ReduceOffsets(CMatchFinder *p, UInt32 subValue);
- -
- -UInt32 * GetMatchesSpec1(UInt32 lenLimit, UInt32 curMatch, UInt32 pos, const Byte *buffer, CLzRef *son,
- - UInt32 _cyclicBufferPos, UInt32 _cyclicBufferSize, UInt32 _cutValue,
- - UInt32 *distances, UInt32 maxLen);
-
- /*
- Conditions:
- @@ -102,12 +91,6 @@ typedef struct _IMatchFinder
-
- void MatchFinder_CreateVTable(CMatchFinder *p, IMatchFinder *vTable);
-
- -void MatchFinder_Init(CMatchFinder *p);
- -UInt32 Bt3Zip_MatchFinder_GetMatches(CMatchFinder *p, UInt32 *distances);
- -UInt32 Hc3Zip_MatchFinder_GetMatches(CMatchFinder *p, UInt32 *distances);
- -void Bt3Zip_MatchFinder_Skip(CMatchFinder *p, UInt32 num);
- -void Hc3Zip_MatchFinder_Skip(CMatchFinder *p, UInt32 num);
- -
- #ifdef __cplusplus
- }
- #endif
- --- a/lib/lzma/LzFind.c
- +++ b/lib/lzma/LzFind.c
- @@ -14,9 +14,15 @@
-
- #define kStartMaxLen 3
-
- +#if 0
- +#define DIRECT_INPUT p->directInput
- +#else
- +#define DIRECT_INPUT 1
- +#endif
- +
- static void LzInWindow_Free(CMatchFinder *p, ISzAlloc *alloc)
- {
- - if (!p->directInput)
- + if (!DIRECT_INPUT)
- {
- alloc->Free(alloc, p->bufferBase);
- p->bufferBase = 0;
- @@ -28,7 +34,7 @@ static void LzInWindow_Free(CMatchFinder
- static int LzInWindow_Create(CMatchFinder *p, UInt32 keepSizeReserv, ISzAlloc *alloc)
- {
- UInt32 blockSize = p->keepSizeBefore + p->keepSizeAfter + keepSizeReserv;
- - if (p->directInput)
- + if (DIRECT_INPUT)
- {
- p->blockSize = blockSize;
- return 1;
- @@ -42,12 +48,12 @@ static int LzInWindow_Create(CMatchFinde
- return (p->bufferBase != 0);
- }
-
- -Byte *MatchFinder_GetPointerToCurrentPos(CMatchFinder *p) { return p->buffer; }
- -Byte MatchFinder_GetIndexByte(CMatchFinder *p, Int32 index) { return p->buffer[index]; }
- +static Byte *MatchFinder_GetPointerToCurrentPos(CMatchFinder *p) { return p->buffer; }
- +static Byte MatchFinder_GetIndexByte(CMatchFinder *p, Int32 index) { return p->buffer[index]; }
-
- -UInt32 MatchFinder_GetNumAvailableBytes(CMatchFinder *p) { return p->streamPos - p->pos; }
- +static UInt32 MatchFinder_GetNumAvailableBytes(CMatchFinder *p) { return p->streamPos - p->pos; }
-
- -void MatchFinder_ReduceOffsets(CMatchFinder *p, UInt32 subValue)
- +static void MatchFinder_ReduceOffsets(CMatchFinder *p, UInt32 subValue)
- {
- p->posLimit -= subValue;
- p->pos -= subValue;
- @@ -58,7 +64,7 @@ static void MatchFinder_ReadBlock(CMatch
- {
- if (p->streamEndWasReached || p->result != SZ_OK)
- return;
- - if (p->directInput)
- + if (DIRECT_INPUT)
- {
- UInt32 curSize = 0xFFFFFFFF - p->streamPos;
- if (curSize > p->directInputRem)
- @@ -89,7 +95,7 @@ static void MatchFinder_ReadBlock(CMatch
- }
- }
-
- -void MatchFinder_MoveBlock(CMatchFinder *p)
- +static void MatchFinder_MoveBlock(CMatchFinder *p)
- {
- memmove(p->bufferBase,
- p->buffer - p->keepSizeBefore,
- @@ -97,22 +103,14 @@ void MatchFinder_MoveBlock(CMatchFinder
- p->buffer = p->bufferBase + p->keepSizeBefore;
- }
-
- -int MatchFinder_NeedMove(CMatchFinder *p)
- +static int MatchFinder_NeedMove(CMatchFinder *p)
- {
- - if (p->directInput)
- + if (DIRECT_INPUT)
- return 0;
- /* if (p->streamEndWasReached) return 0; */
- return ((size_t)(p->bufferBase + p->blockSize - p->buffer) <= p->keepSizeAfter);
- }
-
- -void MatchFinder_ReadIfRequired(CMatchFinder *p)
- -{
- - if (p->streamEndWasReached)
- - return;
- - if (p->keepSizeAfter >= p->streamPos - p->pos)
- - MatchFinder_ReadBlock(p);
- -}
- -
- static void MatchFinder_CheckAndMoveAndRead(CMatchFinder *p)
- {
- if (MatchFinder_NeedMove(p))
- @@ -268,7 +266,7 @@ static void MatchFinder_SetLimits(CMatch
- p->posLimit = p->pos + limit;
- }
-
- -void MatchFinder_Init(CMatchFinder *p)
- +static void MatchFinder_Init(CMatchFinder *p)
- {
- UInt32 i;
- for (i = 0; i < p->hashSizeSum; i++)
- @@ -287,7 +285,7 @@ static UInt32 MatchFinder_GetSubValue(CM
- return (p->pos - p->historySize - 1) & kNormalizeMask;
- }
-
- -void MatchFinder_Normalize3(UInt32 subValue, CLzRef *items, UInt32 numItems)
- +static void MatchFinder_Normalize3(UInt32 subValue, CLzRef *items, UInt32 numItems)
- {
- UInt32 i;
- for (i = 0; i < numItems; i++)
- @@ -319,38 +317,7 @@ static void MatchFinder_CheckLimits(CMat
- MatchFinder_SetLimits(p);
- }
-
- -static UInt32 * Hc_GetMatchesSpec(UInt32 lenLimit, UInt32 curMatch, UInt32 pos, const Byte *cur, CLzRef *son,
- - UInt32 _cyclicBufferPos, UInt32 _cyclicBufferSize, UInt32 cutValue,
- - UInt32 *distances, UInt32 maxLen)
- -{
- - son[_cyclicBufferPos] = curMatch;
- - for (;;)
- - {
- - UInt32 delta = pos - curMatch;
- - if (cutValue-- == 0 || delta >= _cyclicBufferSize)
- - return distances;
- - {
- - const Byte *pb = cur - delta;
- - curMatch = son[_cyclicBufferPos - delta + ((delta > _cyclicBufferPos) ? _cyclicBufferSize : 0)];
- - if (pb[maxLen] == cur[maxLen] && *pb == *cur)
- - {
- - UInt32 len = 0;
- - while (++len != lenLimit)
- - if (pb[len] != cur[len])
- - break;
- - if (maxLen < len)
- - {
- - *distances++ = maxLen = len;
- - *distances++ = delta - 1;
- - if (len == lenLimit)
- - return distances;
- - }
- - }
- - }
- - }
- -}
- -
- -UInt32 * GetMatchesSpec1(UInt32 lenLimit, UInt32 curMatch, UInt32 pos, const Byte *cur, CLzRef *son,
- +static UInt32 * GetMatchesSpec1(UInt32 lenLimit, UInt32 curMatch, UInt32 pos, const Byte *cur, CLzRef *son,
- UInt32 _cyclicBufferPos, UInt32 _cyclicBufferSize, UInt32 cutValue,
- UInt32 *distances, UInt32 maxLen)
- {
- @@ -460,10 +427,10 @@ static void SkipMatchesSpec(UInt32 lenLi
- p->buffer++; \
- if (++p->pos == p->posLimit) MatchFinder_CheckLimits(p);
-
- -#define MOVE_POS_RET MOVE_POS return offset;
- -
- static void MatchFinder_MovePos(CMatchFinder *p) { MOVE_POS; }
-
- +#define MOVE_POS_RET MatchFinder_MovePos(p); return offset;
- +
- #define GET_MATCHES_HEADER2(minLen, ret_op) \
- UInt32 lenLimit; UInt32 hashValue; const Byte *cur; UInt32 curMatch; \
- lenLimit = p->lenLimit; { if (lenLimit < minLen) { MatchFinder_MovePos(p); ret_op; }} \
- @@ -479,62 +446,7 @@ static void MatchFinder_MovePos(CMatchFi
- distances + offset, maxLen) - distances); MOVE_POS_RET;
-
- #define SKIP_FOOTER \
- - SkipMatchesSpec(lenLimit, curMatch, MF_PARAMS(p)); MOVE_POS;
- -
- -static UInt32 Bt2_MatchFinder_GetMatches(CMatchFinder *p, UInt32 *distances)
- -{
- - UInt32 offset;
- - GET_MATCHES_HEADER(2)
- - HASH2_CALC;
- - curMatch = p->hash[hashValue];
- - p->hash[hashValue] = p->pos;
- - offset = 0;
- - GET_MATCHES_FOOTER(offset, 1)
- -}
- -
- -UInt32 Bt3Zip_MatchFinder_GetMatches(CMatchFinder *p, UInt32 *distances)
- -{
- - UInt32 offset;
- - GET_MATCHES_HEADER(3)
- - HASH_ZIP_CALC;
- - curMatch = p->hash[hashValue];
- - p->hash[hashValue] = p->pos;
- - offset = 0;
- - GET_MATCHES_FOOTER(offset, 2)
- -}
- -
- -static UInt32 Bt3_MatchFinder_GetMatches(CMatchFinder *p, UInt32 *distances)
- -{
- - UInt32 hash2Value, delta2, maxLen, offset;
- - GET_MATCHES_HEADER(3)
- -
- - HASH3_CALC;
- -
- - delta2 = p->pos - p->hash[hash2Value];
- - curMatch = p->hash[kFix3HashSize + hashValue];
- -
- - p->hash[hash2Value] =
- - p->hash[kFix3HashSize + hashValue] = p->pos;
- -
- -
- - maxLen = 2;
- - offset = 0;
- - if (delta2 < p->cyclicBufferSize && *(cur - delta2) == *cur)
- - {
- - for (; maxLen != lenLimit; maxLen++)
- - if (cur[(ptrdiff_t)maxLen - delta2] != cur[maxLen])
- - break;
- - distances[0] = maxLen;
- - distances[1] = delta2 - 1;
- - offset = 2;
- - if (maxLen == lenLimit)
- - {
- - SkipMatchesSpec(lenLimit, curMatch, MF_PARAMS(p));
- - MOVE_POS_RET;
- - }
- - }
- - GET_MATCHES_FOOTER(offset, maxLen)
- -}
- + SkipMatchesSpec(lenLimit, curMatch, MF_PARAMS(p)); MatchFinder_MovePos(p);
-
- static UInt32 Bt4_MatchFinder_GetMatches(CMatchFinder *p, UInt32 *distances)
- {
- @@ -583,108 +495,6 @@ static UInt32 Bt4_MatchFinder_GetMatches
- GET_MATCHES_FOOTER(offset, maxLen)
- }
-
- -static UInt32 Hc4_MatchFinder_GetMatches(CMatchFinder *p, UInt32 *distances)
- -{
- - UInt32 hash2Value, hash3Value, delta2, delta3, maxLen, offset;
- - GET_MATCHES_HEADER(4)
- -
- - HASH4_CALC;
- -
- - delta2 = p->pos - p->hash[ hash2Value];
- - delta3 = p->pos - p->hash[kFix3HashSize + hash3Value];
- - curMatch = p->hash[kFix4HashSize + hashValue];
- -
- - p->hash[ hash2Value] =
- - p->hash[kFix3HashSize + hash3Value] =
- - p->hash[kFix4HashSize + hashValue] = p->pos;
- -
- - maxLen = 1;
- - offset = 0;
- - if (delta2 < p->cyclicBufferSize && *(cur - delta2) == *cur)
- - {
- - distances[0] = maxLen = 2;
- - distances[1] = delta2 - 1;
- - offset = 2;
- - }
- - if (delta2 != delta3 && delta3 < p->cyclicBufferSize && *(cur - delta3) == *cur)
- - {
- - maxLen = 3;
- - distances[offset + 1] = delta3 - 1;
- - offset += 2;
- - delta2 = delta3;
- - }
- - if (offset != 0)
- - {
- - for (; maxLen != lenLimit; maxLen++)
- - if (cur[(ptrdiff_t)maxLen - delta2] != cur[maxLen])
- - break;
- - distances[offset - 2] = maxLen;
- - if (maxLen == lenLimit)
- - {
- - p->son[p->cyclicBufferPos] = curMatch;
- - MOVE_POS_RET;
- - }
- - }
- - if (maxLen < 3)
- - maxLen = 3;
- - offset = (UInt32)(Hc_GetMatchesSpec(lenLimit, curMatch, MF_PARAMS(p),
- - distances + offset, maxLen) - (distances));
- - MOVE_POS_RET
- -}
- -
- -UInt32 Hc3Zip_MatchFinder_GetMatches(CMatchFinder *p, UInt32 *distances)
- -{
- - UInt32 offset;
- - GET_MATCHES_HEADER(3)
- - HASH_ZIP_CALC;
- - curMatch = p->hash[hashValue];
- - p->hash[hashValue] = p->pos;
- - offset = (UInt32)(Hc_GetMatchesSpec(lenLimit, curMatch, MF_PARAMS(p),
- - distances, 2) - (distances));
- - MOVE_POS_RET
- -}
- -
- -static void Bt2_MatchFinder_Skip(CMatchFinder *p, UInt32 num)
- -{
- - do
- - {
- - SKIP_HEADER(2)
- - HASH2_CALC;
- - curMatch = p->hash[hashValue];
- - p->hash[hashValue] = p->pos;
- - SKIP_FOOTER
- - }
- - while (--num != 0);
- -}
- -
- -void Bt3Zip_MatchFinder_Skip(CMatchFinder *p, UInt32 num)
- -{
- - do
- - {
- - SKIP_HEADER(3)
- - HASH_ZIP_CALC;
- - curMatch = p->hash[hashValue];
- - p->hash[hashValue] = p->pos;
- - SKIP_FOOTER
- - }
- - while (--num != 0);
- -}
- -
- -static void Bt3_MatchFinder_Skip(CMatchFinder *p, UInt32 num)
- -{
- - do
- - {
- - UInt32 hash2Value;
- - SKIP_HEADER(3)
- - HASH3_CALC;
- - curMatch = p->hash[kFix3HashSize + hashValue];
- - p->hash[hash2Value] =
- - p->hash[kFix3HashSize + hashValue] = p->pos;
- - SKIP_FOOTER
- - }
- - while (--num != 0);
- -}
- -
- static void Bt4_MatchFinder_Skip(CMatchFinder *p, UInt32 num)
- {
- do
- @@ -701,61 +511,12 @@ static void Bt4_MatchFinder_Skip(CMatchF
- while (--num != 0);
- }
-
- -static void Hc4_MatchFinder_Skip(CMatchFinder *p, UInt32 num)
- -{
- - do
- - {
- - UInt32 hash2Value, hash3Value;
- - SKIP_HEADER(4)
- - HASH4_CALC;
- - curMatch = p->hash[kFix4HashSize + hashValue];
- - p->hash[ hash2Value] =
- - p->hash[kFix3HashSize + hash3Value] =
- - p->hash[kFix4HashSize + hashValue] = p->pos;
- - p->son[p->cyclicBufferPos] = curMatch;
- - MOVE_POS
- - }
- - while (--num != 0);
- -}
- -
- -void Hc3Zip_MatchFinder_Skip(CMatchFinder *p, UInt32 num)
- -{
- - do
- - {
- - SKIP_HEADER(3)
- - HASH_ZIP_CALC;
- - curMatch = p->hash[hashValue];
- - p->hash[hashValue] = p->pos;
- - p->son[p->cyclicBufferPos] = curMatch;
- - MOVE_POS
- - }
- - while (--num != 0);
- -}
- -
- void MatchFinder_CreateVTable(CMatchFinder *p, IMatchFinder *vTable)
- {
- vTable->Init = (Mf_Init_Func)MatchFinder_Init;
- vTable->GetIndexByte = (Mf_GetIndexByte_Func)MatchFinder_GetIndexByte;
- vTable->GetNumAvailableBytes = (Mf_GetNumAvailableBytes_Func)MatchFinder_GetNumAvailableBytes;
- vTable->GetPointerToCurrentPos = (Mf_GetPointerToCurrentPos_Func)MatchFinder_GetPointerToCurrentPos;
- - if (!p->btMode)
- - {
- - vTable->GetMatches = (Mf_GetMatches_Func)Hc4_MatchFinder_GetMatches;
- - vTable->Skip = (Mf_Skip_Func)Hc4_MatchFinder_Skip;
- - }
- - else if (p->numHashBytes == 2)
- - {
- - vTable->GetMatches = (Mf_GetMatches_Func)Bt2_MatchFinder_GetMatches;
- - vTable->Skip = (Mf_Skip_Func)Bt2_MatchFinder_Skip;
- - }
- - else if (p->numHashBytes == 3)
- - {
- - vTable->GetMatches = (Mf_GetMatches_Func)Bt3_MatchFinder_GetMatches;
- - vTable->Skip = (Mf_Skip_Func)Bt3_MatchFinder_Skip;
- - }
- - else
- - {
- - vTable->GetMatches = (Mf_GetMatches_Func)Bt4_MatchFinder_GetMatches;
- - vTable->Skip = (Mf_Skip_Func)Bt4_MatchFinder_Skip;
- - }
- + vTable->GetMatches = (Mf_GetMatches_Func)Bt4_MatchFinder_GetMatches;
- + vTable->Skip = (Mf_Skip_Func)Bt4_MatchFinder_Skip;
- }
|