Lines Matching defs:ddict
161 static void ZSTD_refDDict(ZSTD_DCtx *dstDCtx, const ZSTD_DDict *ddict);
1640 static const void *ZSTD_DDictDictContent(const ZSTD_DDict *ddict);
1641 static size_t ZSTD_DDictDictSize(const ZSTD_DDict *ddict);
1644 const ZSTD_DDict *ddict)
1648 if (ddict) {
1654 dict = ZSTD_DDictDictContent(ddict);
1655 dictSize = ZSTD_DDictDictSize(ddict);
1680 if (ddict) {
1682 ZSTD_refDDict(dctx, ddict);
1685 * use this in all cases but ddict */
1991 static const void *ZSTD_DDictDictContent(const ZSTD_DDict *ddict) { return ddict->dictContent; }
1993 static size_t ZSTD_DDictDictSize(const ZSTD_DDict *ddict) { return ddict->dictSize; }
1995 static void ZSTD_refDDict(ZSTD_DCtx *dstDCtx, const ZSTD_DDict *ddict)
1998 if (ddict) { /* support refDDict on NULL */
1999 dstDCtx->dictID = ddict->dictID;
2000 dstDCtx->base = ddict->dictContent;
2001 dstDCtx->vBase = ddict->dictContent;
2002 dstDCtx->dictEnd = (const BYTE *)ddict->dictContent + ddict->dictSize;
2004 if (ddict->entropyPresent) {
2007 dstDCtx->LLTptr = ddict->entropy.LLTable;
2008 dstDCtx->MLTptr = ddict->entropy.MLTable;
2009 dstDCtx->OFTptr = ddict->entropy.OFTable;
2010 dstDCtx->HUFptr = ddict->entropy.hufTable;
2011 dstDCtx->entropy.rep[0] = ddict->entropy.rep[0];
2012 dstDCtx->entropy.rep[1] = ddict->entropy.rep[1];
2013 dstDCtx->entropy.rep[2] = ddict->entropy.rep[2];
2021 static size_t ZSTD_loadEntropy_inDDict(ZSTD_DDict *ddict)
2023 ddict->dictID = 0;
2024 ddict->entropyPresent = 0;
2025 if (ddict->dictSize < 8)
2028 U32 const magic = ZSTD_readLE32(ddict->dictContent);
2032 ddict->dictID = ZSTD_readLE32((const char *)ddict->dictContent + 4);
2035 CHECK_E(ZSTD_loadEntropy(&ddict->entropy, ddict->dictContent, ddict->dictSize), dictionary_corrupted);
2036 ddict->entropyPresent = 1;
2046 ZSTD_DDict *const ddict = (ZSTD_DDict *)ZSTD_malloc(sizeof(ZSTD_DDict), customMem);
2047 if (!ddict)
2049 ddict->cMem = customMem;
2052 ddict->dictBuffer = NULL;
2053 ddict->dictContent = dict;
2057 ZSTD_freeDDict(ddict);
2061 ddict->dictBuffer = internalBuffer;
2062 ddict->dictContent = internalBuffer;
2064 ddict->dictSize = dictSize;
2065 ddict->entropy.hufTable[0] = (HUF_DTable)((HufLog)*0x1000001); /* cover both little and big endian */
2068 size_t const errorCode = ZSTD_loadEntropy_inDDict(ddict);
2070 ZSTD_freeDDict(ddict);
2075 return ddict;
2089 size_t ZSTD_freeDDict(ZSTD_DDict *ddict)
2091 if (ddict == NULL)
2094 ZSTD_customMem const cMem = ddict->cMem;
2095 ZSTD_free(ddict->dictBuffer, cMem);
2096 ZSTD_free(ddict, cMem);
2115 * Provides the dictID of the dictionary loaded into `ddict`.
2118 unsigned ZSTD_getDictID_fromDDict(const ZSTD_DDict *ddict)
2120 if (ddict == NULL)
2122 return ZSTD_getDictID_fromDict(ddict->dictContent, ddict->dictSize);
2147 size_t ZSTD_decompress_usingDDict(ZSTD_DCtx *dctx, void *dst, size_t dstCapacity, const void *src, size_t srcSize, const ZSTD_DDict *ddict)
2150 return ZSTD_decompressMultiFrame(dctx, dst, dstCapacity, src, srcSize, NULL, 0, ddict);
2163 const ZSTD_DDict *ddict;
2227 zds->ddict = zds->ddictLocal;
2247 ZSTD_DStream *ZSTD_initDStream_usingDDict(size_t maxWindowSize, const ZSTD_DDict *ddict, void *workspace, size_t workspaceSize)
2251 zds->ddict = ddict;
2338 size_t const decompressedSize = ZSTD_decompress_usingDDict(zds->dctx, op, oend - op, istart, cSize, zds->ddict);
2351 ZSTD_refDDict(zds->dctx, zds->ddict);