Lines Matching refs:zbc
3375 ZBUFF_DCtx* zbc = (ZBUFF_DCtx*)malloc(sizeof(ZBUFF_DCtx)); in ZBUFF_createDCtx() local
3376 if (zbc==NULL) return NULL; in ZBUFF_createDCtx()
3377 memset(zbc, 0, sizeof(*zbc)); in ZBUFF_createDCtx()
3378 zbc->zc = ZSTD_createDCtx(); in ZBUFF_createDCtx()
3379 zbc->stage = ZBUFFds_init; in ZBUFF_createDCtx()
3380 return zbc; in ZBUFF_createDCtx()
3383 static size_t ZBUFF_freeDCtx(ZBUFF_DCtx* zbc) in ZBUFF_freeDCtx() argument
3385 if (zbc==NULL) return 0; /* support free on null */ in ZBUFF_freeDCtx()
3386 ZSTD_freeDCtx(zbc->zc); in ZBUFF_freeDCtx()
3387 free(zbc->inBuff); in ZBUFF_freeDCtx()
3388 free(zbc->outBuff); in ZBUFF_freeDCtx()
3389 free(zbc); in ZBUFF_freeDCtx()
3396 static size_t ZBUFF_decompressInit(ZBUFF_DCtx* zbc) in ZBUFF_decompressInit() argument
3398 zbc->stage = ZBUFFds_readHeader; in ZBUFF_decompressInit()
3399 zbc->hPos = zbc->inPos = zbc->outStart = zbc->outEnd = zbc->dictSize = 0; in ZBUFF_decompressInit()
3400 return ZSTD_resetDCtx(zbc->zc); in ZBUFF_decompressInit()
3404 static size_t ZBUFF_decompressWithDictionary(ZBUFF_DCtx* zbc, const void* src, size_t srcSize) in ZBUFF_decompressWithDictionary() argument
3406 zbc->dict = (const char*)src; in ZBUFF_decompressWithDictionary()
3407 zbc->dictSize = srcSize; in ZBUFF_decompressWithDictionary()
3422 static size_t ZBUFF_decompressContinue(ZBUFF_DCtx* zbc, void* dst, size_t* maxDstSizePtr, const voi… in ZBUFF_decompressContinue() argument
3435 switch(zbc->stage) in ZBUFF_decompressContinue()
3444 { size_t const headerSize = ZSTD_getFrameParams(&(zbc->params), src, *srcSizePtr); in ZBUFF_decompressContinue()
3448 memcpy(zbc->headerBuffer+zbc->hPos, src, *srcSizePtr); in ZBUFF_decompressContinue()
3449 zbc->hPos += *srcSizePtr; in ZBUFF_decompressContinue()
3451 zbc->stage = ZBUFFds_loadHeader; in ZBUFF_decompressContinue()
3452 return headerSize - zbc->hPos; in ZBUFF_decompressContinue()
3454 zbc->stage = ZBUFFds_decodeHeader; in ZBUFF_decompressContinue()
3461 zbc->headerBuffer + zbc->hPos, ZSTD_frameHeaderSize_max - zbc->hPos, in ZBUFF_decompressContinue()
3463 zbc->hPos += headerSize; in ZBUFF_decompressContinue()
3465 headerSize = ZSTD_getFrameParams(&(zbc->params), zbc->headerBuffer, zbc->hPos); in ZBUFF_decompressContinue()
3470 return headerSize - zbc->hPos; in ZBUFF_decompressContinue()
3476 { size_t const neededOutSize = (size_t)1 << zbc->params.windowLog; in ZBUFF_decompressContinue()
3478 if (zbc->inBuffSize < neededInSize) { in ZBUFF_decompressContinue()
3479 free(zbc->inBuff); in ZBUFF_decompressContinue()
3480 zbc->inBuffSize = neededInSize; in ZBUFF_decompressContinue()
3481 zbc->inBuff = (char*)malloc(neededInSize); in ZBUFF_decompressContinue()
3482 if (zbc->inBuff == NULL) return ERROR(memory_allocation); in ZBUFF_decompressContinue()
3484 if (zbc->outBuffSize < neededOutSize) { in ZBUFF_decompressContinue()
3485 free(zbc->outBuff); in ZBUFF_decompressContinue()
3486 zbc->outBuffSize = neededOutSize; in ZBUFF_decompressContinue()
3487 zbc->outBuff = (char*)malloc(neededOutSize); in ZBUFF_decompressContinue()
3488 if (zbc->outBuff == NULL) return ERROR(memory_allocation); in ZBUFF_decompressContinue()
3490 if (zbc->dictSize) in ZBUFF_decompressContinue()
3491 ZSTD_decompress_insertDictionary(zbc->zc, zbc->dict, zbc->dictSize); in ZBUFF_decompressContinue()
3492 if (zbc->hPos) { in ZBUFF_decompressContinue()
3494 memcpy(zbc->inBuff, zbc->headerBuffer, zbc->hPos); in ZBUFF_decompressContinue()
3495 zbc->inPos = zbc->hPos; in ZBUFF_decompressContinue()
3496 zbc->hPos = 0; in ZBUFF_decompressContinue()
3497 zbc->stage = ZBUFFds_load; in ZBUFF_decompressContinue()
3500 zbc->stage = ZBUFFds_read; in ZBUFF_decompressContinue()
3504 size_t neededInSize = ZSTD_nextSrcSizeToDecompress(zbc->zc); in ZBUFF_decompressContinue()
3507 zbc->stage = ZBUFFds_init; in ZBUFF_decompressContinue()
3514 size_t decodedSize = ZSTD_decompressContinue(zbc->zc, in ZBUFF_decompressContinue()
3515 zbc->outBuff + zbc->outStart, zbc->outBuffSize - zbc->outStart, in ZBUFF_decompressContinue()
3520 zbc->outEnd = zbc->outStart + decodedSize; in ZBUFF_decompressContinue()
3521 zbc->stage = ZBUFFds_flush; in ZBUFF_decompressContinue()
3525 zbc->stage = ZBUFFds_load; in ZBUFF_decompressContinue()
3530 size_t neededInSize = ZSTD_nextSrcSizeToDecompress(zbc->zc); in ZBUFF_decompressContinue()
3531 …size_t toLoad = neededInSize - zbc->inPos; /* should always be <= remaining space within inBuff … in ZBUFF_decompressContinue()
3533 …if (toLoad > zbc->inBuffSize - zbc->inPos) return ERROR(corruption_detected); /* should never ha… in ZBUFF_decompressContinue()
3534 loadedSize = ZBUFF_limitCopy(zbc->inBuff + zbc->inPos, toLoad, ip, iend-ip); in ZBUFF_decompressContinue()
3536 zbc->inPos += loadedSize; in ZBUFF_decompressContinue()
3539 size_t decodedSize = ZSTD_decompressContinue(zbc->zc, in ZBUFF_decompressContinue()
3540 zbc->outBuff + zbc->outStart, zbc->outBuffSize - zbc->outStart, in ZBUFF_decompressContinue()
3541 zbc->inBuff, neededInSize); in ZBUFF_decompressContinue()
3543 zbc->inPos = 0; /* input is consumed */ in ZBUFF_decompressContinue()
3544 … if (!decodedSize) { zbc->stage = ZBUFFds_read; break; } /* this was just a header */ in ZBUFF_decompressContinue()
3545 zbc->outEnd = zbc->outStart + decodedSize; in ZBUFF_decompressContinue()
3546 zbc->stage = ZBUFFds_flush; in ZBUFF_decompressContinue()
3553 size_t toFlushSize = zbc->outEnd - zbc->outStart; in ZBUFF_decompressContinue()
3554 … size_t flushedSize = ZBUFF_limitCopy(op, oend-op, zbc->outBuff + zbc->outStart, toFlushSize); in ZBUFF_decompressContinue()
3556 zbc->outStart += flushedSize; in ZBUFF_decompressContinue()
3559 zbc->stage = ZBUFFds_read; in ZBUFF_decompressContinue()
3560 if (zbc->outStart + BLOCKSIZE > zbc->outBuffSize) in ZBUFF_decompressContinue()
3561 zbc->outStart = zbc->outEnd = 0; in ZBUFF_decompressContinue()
3576 size_t nextSrcSizeHint = ZSTD_nextSrcSizeToDecompress(zbc->zc); in ZBUFF_decompressContinue()
3578 nextSrcSizeHint -= zbc->inPos; /* already loaded*/ in ZBUFF_decompressContinue()