From: Yann Collet Date: Sun, 26 Mar 2017 21:39:13 +0000 (-0700) Subject: Merge branch 'dev' into LegacyDictBuilder X-Git-Tag: v1.2.0^2~80^2^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=69017bf2531c16d30caafc04ecdfdff3fdf2baaf;p=thirdparty%2Fzstd.git Merge branch 'dev' into LegacyDictBuilder --- 69017bf2531c16d30caafc04ecdfdff3fdf2baaf diff --cc lib/dictBuilder/zdict.c index 2c87084ac,6bc42526a..cd2e3a2f5 --- a/lib/dictBuilder/zdict.c +++ b/lib/dictBuilder/zdict.c @@@ -361,24 -361,11 +361,24 @@@ static dictItem ZDICT_analyzePos } -/*! ZDICT_tryMerge() : - * check if dictItem can be merged, do it if possible - * @return : id of destination elt, 0 if not merged - */ -static U32 ZDICT_tryMerge(dictItem* table, dictItem elt, U32 eltNbToSkip) +static int isIncluded(const void* in, const void* container, size_t length) +{ + const char* const ip = (const char*) in; + const char* const into = (const char*) container; + size_t u; + - for (u=0; upos; const U32 eltEnd = elt.pos + elt.length; @@@ -449,14 -423,14 +449,14 @@@ static void ZDICT_removeDictItem(dictIt } -static void ZDICT_insertDictItem(dictItem* table, U32 maxSize, dictItem elt) +static void ZDICT_insertDictItem(dictItem* table, U32 maxSize, dictItem elt, const void* buffer) { /* merge if possible */ - U32 mergeId = ZDICT_checkMerge(table, elt, 0, buffer); - U32 mergeId = ZDICT_tryMerge(table, elt, 0); - if (mergeId) { /* recursive : re-merge the newly merged elt */ ++ U32 mergeId = ZDICT_tryMerge(table, elt, 0, buffer); + if (mergeId) { U32 newMerge = 1; while (newMerge) { - newMerge = ZDICT_checkMerge(table, table[mergeId], mergeId, buffer); - newMerge = ZDICT_tryMerge(table, table[mergeId], mergeId); /* merge existing elt */ ++ newMerge = ZDICT_tryMerge(table, table[mergeId], mergeId, buffer); if (newMerge) ZDICT_removeDictItem(table, mergeId); mergeId = newMerge; }