Merge pull request #762 from facebook/errorCodes
pinned down error code enum values
This commit is contained in:
commit
3841ee6fb3
1
NEWS
1
NEWS
@ -3,6 +3,7 @@ perf: substantially decreased memory usage in Multi-threading mode, thanks to re
|
|||||||
perf: Multi-threading supports up to 256 threads. Cap at 256 when more are requested (#760)
|
perf: Multi-threading supports up to 256 threads. Cap at 256 when more are requested (#760)
|
||||||
build: fix Visual compilation for non x86/x64 targets, reported by Greg Slazinski (#718)
|
build: fix Visual compilation for non x86/x64 targets, reported by Greg Slazinski (#718)
|
||||||
API exp : breaking change : ZSTD_getframeHeader() provides more information
|
API exp : breaking change : ZSTD_getframeHeader() provides more information
|
||||||
|
API exp : breaking change : pinned down values of error codes
|
||||||
|
|
||||||
v1.3.0
|
v1.3.0
|
||||||
cli : new : `--list` command, by Paul Cruz
|
cli : new : `--list` command, by Paul Cruz
|
||||||
|
@ -20,19 +20,17 @@ const char* ERR_getErrorString(ERR_enum code)
|
|||||||
case PREFIX(GENERIC): return "Error (generic)";
|
case PREFIX(GENERIC): return "Error (generic)";
|
||||||
case PREFIX(prefix_unknown): return "Unknown frame descriptor";
|
case PREFIX(prefix_unknown): return "Unknown frame descriptor";
|
||||||
case PREFIX(version_unsupported): return "Version not supported";
|
case PREFIX(version_unsupported): return "Version not supported";
|
||||||
case PREFIX(parameter_unknown): return "Unknown parameter type";
|
|
||||||
case PREFIX(frameParameter_unsupported): return "Unsupported frame parameter";
|
case PREFIX(frameParameter_unsupported): return "Unsupported frame parameter";
|
||||||
case PREFIX(frameParameter_unsupportedBy32bits): return "Frame parameter unsupported in 32-bits mode";
|
|
||||||
case PREFIX(frameParameter_windowTooLarge): return "Frame requires too much memory for decoding";
|
case PREFIX(frameParameter_windowTooLarge): return "Frame requires too much memory for decoding";
|
||||||
case PREFIX(compressionParameter_unsupported): return "Compression parameter is not supported";
|
case PREFIX(corruption_detected): return "Corrupted block detected";
|
||||||
case PREFIX(compressionParameter_outOfBound): return "Compression parameter is out of bound";
|
case PREFIX(checksum_wrong): return "Restored data doesn't match checksum";
|
||||||
|
case PREFIX(parameter_unsupported): return "Unsupported parameter";
|
||||||
|
case PREFIX(parameter_outOfBound): return "Parameter is out of bound";
|
||||||
case PREFIX(init_missing): return "Context should be init first";
|
case PREFIX(init_missing): return "Context should be init first";
|
||||||
case PREFIX(memory_allocation): return "Allocation error : not enough memory";
|
case PREFIX(memory_allocation): return "Allocation error : not enough memory";
|
||||||
case PREFIX(stage_wrong): return "Operation not authorized at current processing stage";
|
case PREFIX(stage_wrong): return "Operation not authorized at current processing stage";
|
||||||
case PREFIX(dstSize_tooSmall): return "Destination buffer is too small";
|
case PREFIX(dstSize_tooSmall): return "Destination buffer is too small";
|
||||||
case PREFIX(srcSize_wrong): return "Src size is incorrect";
|
case PREFIX(srcSize_wrong): return "Src size is incorrect";
|
||||||
case PREFIX(corruption_detected): return "Corrupted block detected";
|
|
||||||
case PREFIX(checksum_wrong): return "Restored data doesn't match checksum";
|
|
||||||
case PREFIX(tableLog_tooLarge): return "tableLog requires too much memory : unsupported";
|
case PREFIX(tableLog_tooLarge): return "tableLog requires too much memory : unsupported";
|
||||||
case PREFIX(maxSymbolValue_tooLarge): return "Unsupported max Symbol Value : too large";
|
case PREFIX(maxSymbolValue_tooLarge): return "Unsupported max Symbol Value : too large";
|
||||||
case PREFIX(maxSymbolValue_tooSmall): return "Specified maxSymbolValue is too small";
|
case PREFIX(maxSymbolValue_tooSmall): return "Specified maxSymbolValue is too small";
|
||||||
|
@ -37,43 +37,41 @@ extern "C" {
|
|||||||
/*-****************************************
|
/*-****************************************
|
||||||
* error codes list
|
* error codes list
|
||||||
* note : this API is still considered unstable
|
* note : this API is still considered unstable
|
||||||
* it should not be used with a dynamic library
|
* and shall not be used with a dynamic library.
|
||||||
* only static linking is allowed
|
* only static linking is allowed
|
||||||
******************************************/
|
******************************************/
|
||||||
typedef enum {
|
typedef enum {
|
||||||
ZSTD_error_no_error,
|
ZSTD_error_no_error = 0,
|
||||||
ZSTD_error_GENERIC,
|
ZSTD_error_GENERIC = 1,
|
||||||
ZSTD_error_prefix_unknown,
|
ZSTD_error_prefix_unknown = 10,
|
||||||
ZSTD_error_version_unsupported,
|
ZSTD_error_version_unsupported = 12,
|
||||||
ZSTD_error_parameter_unknown,
|
ZSTD_error_frameParameter_unsupported = 14,
|
||||||
ZSTD_error_frameParameter_unsupported,
|
ZSTD_error_frameParameter_windowTooLarge = 16,
|
||||||
ZSTD_error_frameParameter_unsupportedBy32bits,
|
ZSTD_error_corruption_detected = 20,
|
||||||
ZSTD_error_frameParameter_windowTooLarge,
|
ZSTD_error_checksum_wrong = 22,
|
||||||
ZSTD_error_compressionParameter_unsupported,
|
ZSTD_error_dictionary_corrupted = 30,
|
||||||
ZSTD_error_compressionParameter_outOfBound,
|
ZSTD_error_dictionary_wrong = 32,
|
||||||
ZSTD_error_init_missing,
|
ZSTD_error_dictionaryCreation_failed = 34,
|
||||||
ZSTD_error_memory_allocation,
|
ZSTD_error_parameter_unsupported = 40,
|
||||||
ZSTD_error_stage_wrong,
|
ZSTD_error_parameter_outOfBound = 42,
|
||||||
ZSTD_error_dstSize_tooSmall,
|
ZSTD_error_tableLog_tooLarge = 44,
|
||||||
ZSTD_error_srcSize_wrong,
|
ZSTD_error_maxSymbolValue_tooLarge = 46,
|
||||||
ZSTD_error_corruption_detected,
|
ZSTD_error_maxSymbolValue_tooSmall = 48,
|
||||||
ZSTD_error_checksum_wrong,
|
ZSTD_error_stage_wrong = 60,
|
||||||
ZSTD_error_tableLog_tooLarge,
|
ZSTD_error_init_missing = 62,
|
||||||
ZSTD_error_maxSymbolValue_tooLarge,
|
ZSTD_error_memory_allocation = 64,
|
||||||
ZSTD_error_maxSymbolValue_tooSmall,
|
ZSTD_error_dstSize_tooSmall = 70,
|
||||||
ZSTD_error_dictionary_corrupted,
|
ZSTD_error_srcSize_wrong = 72,
|
||||||
ZSTD_error_dictionary_wrong,
|
ZSTD_error_frameIndex_tooLarge = 100,
|
||||||
ZSTD_error_dictionaryCreation_failed,
|
ZSTD_error_seekableIO = 102,
|
||||||
ZSTD_error_frameIndex_tooLarge,
|
ZSTD_error_maxCode = 120 /* never EVER use this value directly, it may change in future versions! Use ZSTD_isError() instead */
|
||||||
ZSTD_error_seekableIO,
|
|
||||||
ZSTD_error_maxCode
|
|
||||||
} ZSTD_ErrorCode;
|
} ZSTD_ErrorCode;
|
||||||
|
|
||||||
/*! ZSTD_getErrorCode() :
|
/*! ZSTD_getErrorCode() :
|
||||||
convert a `size_t` function result into a `ZSTD_ErrorCode` enum type,
|
convert a `size_t` function result into a `ZSTD_ErrorCode` enum type,
|
||||||
which can be used to compare with enum list published above */
|
which can be used to compare with enum list published above */
|
||||||
ZSTDERRORLIB_API ZSTD_ErrorCode ZSTD_getErrorCode(size_t functionResult);
|
ZSTDERRORLIB_API ZSTD_ErrorCode ZSTD_getErrorCode(size_t functionResult);
|
||||||
ZSTDERRORLIB_API const char* ZSTD_getErrorString(ZSTD_ErrorCode code);
|
ZSTDERRORLIB_API const char* ZSTD_getErrorString(ZSTD_ErrorCode code); /**< Same as ZSTD_getErrorName, but using a `ZSTD_ErrorCode` enum argument */
|
||||||
|
|
||||||
|
|
||||||
#if defined (__cplusplus)
|
#if defined (__cplusplus)
|
||||||
|
@ -214,7 +214,7 @@ size_t ZSTD_setCCtxParameter(ZSTD_CCtx* cctx, ZSTD_CCtxParameter param, unsigned
|
|||||||
ZSTD_STATIC_ASSERT(ZSTD_dm_auto==0);
|
ZSTD_STATIC_ASSERT(ZSTD_dm_auto==0);
|
||||||
ZSTD_STATIC_ASSERT(ZSTD_dm_rawContent==1);
|
ZSTD_STATIC_ASSERT(ZSTD_dm_rawContent==1);
|
||||||
case ZSTD_p_forceRawDict : cctx->dictMode = (ZSTD_dictMode_e)(value>0); return 0;
|
case ZSTD_p_forceRawDict : cctx->dictMode = (ZSTD_dictMode_e)(value>0); return 0;
|
||||||
default: return ERROR(parameter_unknown);
|
default: return ERROR(parameter_unsupported);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -228,9 +228,9 @@ static void ZSTD_cLevelToCParams(ZSTD_CCtx* cctx)
|
|||||||
cctx->compressionLevel = ZSTD_CLEVEL_CUSTOM;
|
cctx->compressionLevel = ZSTD_CLEVEL_CUSTOM;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define CLAMPCHECK(val,min,max) { \
|
#define CLAMPCHECK(val,min,max) { \
|
||||||
if (((val)<(min)) | ((val)>(max))) { \
|
if (((val)<(min)) | ((val)>(max))) { \
|
||||||
return ERROR(compressionParameter_outOfBound); \
|
return ERROR(parameter_outOfBound); \
|
||||||
} }
|
} }
|
||||||
|
|
||||||
size_t ZSTD_CCtx_setParameter(ZSTD_CCtx* cctx, ZSTD_cParameter param, unsigned value)
|
size_t ZSTD_CCtx_setParameter(ZSTD_CCtx* cctx, ZSTD_cParameter param, unsigned value)
|
||||||
@ -326,7 +326,7 @@ size_t ZSTD_CCtx_setParameter(ZSTD_CCtx* cctx, ZSTD_cParameter param, unsigned v
|
|||||||
/* restrict dictionary mode, to "rawContent" or "fullDict" only */
|
/* restrict dictionary mode, to "rawContent" or "fullDict" only */
|
||||||
ZSTD_STATIC_ASSERT((U32)ZSTD_dm_fullDict > (U32)ZSTD_dm_rawContent);
|
ZSTD_STATIC_ASSERT((U32)ZSTD_dm_fullDict > (U32)ZSTD_dm_rawContent);
|
||||||
if (value > (unsigned)ZSTD_dm_fullDict)
|
if (value > (unsigned)ZSTD_dm_fullDict)
|
||||||
return ERROR(compressionParameter_outOfBound);
|
return ERROR(parameter_outOfBound);
|
||||||
cctx->dictMode = (ZSTD_dictMode_e)value;
|
cctx->dictMode = (ZSTD_dictMode_e)value;
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
@ -347,11 +347,11 @@ size_t ZSTD_CCtx_setParameter(ZSTD_CCtx* cctx, ZSTD_cParameter param, unsigned v
|
|||||||
if (value==0) return 0;
|
if (value==0) return 0;
|
||||||
DEBUGLOG(5, " setting nbThreads : %u", value);
|
DEBUGLOG(5, " setting nbThreads : %u", value);
|
||||||
#ifndef ZSTD_MULTITHREAD
|
#ifndef ZSTD_MULTITHREAD
|
||||||
if (value > 1) return ERROR(compressionParameter_unsupported);
|
if (value > 1) return ERROR(parameter_unsupported);
|
||||||
#endif
|
#endif
|
||||||
if ((value>1) && (cctx->nbThreads != value)) {
|
if ((value>1) && (cctx->nbThreads != value)) {
|
||||||
if (cctx->staticSize) /* MT not compatible with static alloc */
|
if (cctx->staticSize) /* MT not compatible with static alloc */
|
||||||
return ERROR(compressionParameter_unsupported);
|
return ERROR(parameter_unsupported);
|
||||||
ZSTDMT_freeCCtx(cctx->mtctx);
|
ZSTDMT_freeCCtx(cctx->mtctx);
|
||||||
cctx->nbThreads = 1;
|
cctx->nbThreads = 1;
|
||||||
cctx->mtctx = ZSTDMT_createCCtx_advanced(value, cctx->customMem);
|
cctx->mtctx = ZSTDMT_createCCtx_advanced(value, cctx->customMem);
|
||||||
@ -361,17 +361,17 @@ size_t ZSTD_CCtx_setParameter(ZSTD_CCtx* cctx, ZSTD_cParameter param, unsigned v
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
case ZSTD_p_jobSize:
|
case ZSTD_p_jobSize:
|
||||||
if (cctx->nbThreads <= 1) return ERROR(compressionParameter_unsupported);
|
if (cctx->nbThreads <= 1) return ERROR(parameter_unsupported);
|
||||||
assert(cctx->mtctx != NULL);
|
assert(cctx->mtctx != NULL);
|
||||||
return ZSTDMT_setMTCtxParameter(cctx->mtctx, ZSTDMT_p_sectionSize, value);
|
return ZSTDMT_setMTCtxParameter(cctx->mtctx, ZSTDMT_p_sectionSize, value);
|
||||||
|
|
||||||
case ZSTD_p_overlapSizeLog:
|
case ZSTD_p_overlapSizeLog:
|
||||||
DEBUGLOG(5, " setting overlap with nbThreads == %u", cctx->nbThreads);
|
DEBUGLOG(5, " setting overlap with nbThreads == %u", cctx->nbThreads);
|
||||||
if (cctx->nbThreads <= 1) return ERROR(compressionParameter_unsupported);
|
if (cctx->nbThreads <= 1) return ERROR(parameter_unsupported);
|
||||||
assert(cctx->mtctx != NULL);
|
assert(cctx->mtctx != NULL);
|
||||||
return ZSTDMT_setMTCtxParameter(cctx->mtctx, ZSTDMT_p_overlapSectionLog, value);
|
return ZSTDMT_setMTCtxParameter(cctx->mtctx, ZSTDMT_p_overlapSectionLog, value);
|
||||||
|
|
||||||
default: return ERROR(parameter_unknown);
|
default: return ERROR(parameter_unsupported);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -451,7 +451,8 @@ size_t ZSTD_checkCParams(ZSTD_compressionParameters cParams)
|
|||||||
CLAMPCHECK(cParams.searchLog, ZSTD_SEARCHLOG_MIN, ZSTD_SEARCHLOG_MAX);
|
CLAMPCHECK(cParams.searchLog, ZSTD_SEARCHLOG_MIN, ZSTD_SEARCHLOG_MAX);
|
||||||
CLAMPCHECK(cParams.searchLength, ZSTD_SEARCHLENGTH_MIN, ZSTD_SEARCHLENGTH_MAX);
|
CLAMPCHECK(cParams.searchLength, ZSTD_SEARCHLENGTH_MIN, ZSTD_SEARCHLENGTH_MAX);
|
||||||
CLAMPCHECK(cParams.targetLength, ZSTD_TARGETLENGTH_MIN, ZSTD_TARGETLENGTH_MAX);
|
CLAMPCHECK(cParams.targetLength, ZSTD_TARGETLENGTH_MIN, ZSTD_TARGETLENGTH_MAX);
|
||||||
if ((U32)(cParams.strategy) > (U32)ZSTD_btultra) return ERROR(compressionParameter_unsupported);
|
if ((U32)(cParams.strategy) > (U32)ZSTD_btultra)
|
||||||
|
return ERROR(parameter_unsupported);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -496,7 +496,7 @@ size_t ZSTDMT_setMTCtxParameter(ZSTDMT_CCtx* mtctx, ZSDTMT_parameter parameter,
|
|||||||
mtctx->overlapLog = (value >= 9) ? 9 : value;
|
mtctx->overlapLog = (value >= 9) ? 9 : value;
|
||||||
return 0;
|
return 0;
|
||||||
default :
|
default :
|
||||||
return ERROR(compressionParameter_unsupported);
|
return ERROR(parameter_unsupported);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2227,7 +2227,7 @@ size_t ZSTD_setDStreamParameter(ZSTD_DStream* zds,
|
|||||||
{
|
{
|
||||||
switch(paramType)
|
switch(paramType)
|
||||||
{
|
{
|
||||||
default : return ERROR(parameter_unknown);
|
default : return ERROR(parameter_unsupported);
|
||||||
case DStream_p_maxWindowSize : zds->maxWindowSize = paramValue ? paramValue : (U32)(-1); break;
|
case DStream_p_maxWindowSize : zds->maxWindowSize = paramValue ? paramValue : (U32)(-1); break;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -695,7 +695,7 @@ static size_t ZDICT_analyzeEntropy(void* dstBuffer, size_t maxDstSize,
|
|||||||
DISPLAYLEVEL(1, "Not enough memory \n");
|
DISPLAYLEVEL(1, "Not enough memory \n");
|
||||||
goto _cleanup;
|
goto _cleanup;
|
||||||
}
|
}
|
||||||
if (offcodeMax>OFFCODE_MAX) { eSize = ERROR(dictionary_wrong); goto _cleanup; } /* too large dictionary */
|
if (offcodeMax>OFFCODE_MAX) { eSize = ERROR(dictionaryCreation_failed); goto _cleanup; } /* too large dictionary */
|
||||||
for (u=0; u<256; u++) countLit[u] = 1; /* any character must be described */
|
for (u=0; u<256; u++) countLit[u] = 1; /* any character must be described */
|
||||||
for (u=0; u<=offcodeMax; u++) offcodeCount[u] = 1;
|
for (u=0; u<=offcodeMax; u++) offcodeCount[u] = 1;
|
||||||
for (u=0; u<=MaxML; u++) matchLengthCount[u] = 1;
|
for (u=0; u<=MaxML; u++) matchLengthCount[u] = 1;
|
||||||
|
@ -2776,7 +2776,7 @@ static size_t ZSTD_decodeFrameHeader_Part2(ZSTD_DCtx* zc, const void* src, size_
|
|||||||
size_t result;
|
size_t result;
|
||||||
if (srcSize != zc->headerSize) return ERROR(srcSize_wrong);
|
if (srcSize != zc->headerSize) return ERROR(srcSize_wrong);
|
||||||
result = ZSTD_getFrameParams(&(zc->params), src, srcSize);
|
result = ZSTD_getFrameParams(&(zc->params), src, srcSize);
|
||||||
if ((MEM_32bits()) && (zc->params.windowLog > 25)) return ERROR(frameParameter_unsupportedBy32bits);
|
if ((MEM_32bits()) && (zc->params.windowLog > 25)) return ERROR(frameParameter_unsupported);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2888,7 +2888,7 @@ static size_t ZSTDv05_decodeFrameHeader_Part2(ZSTDv05_DCtx* zc, const void* src,
|
|||||||
if (srcSize != zc->headerSize)
|
if (srcSize != zc->headerSize)
|
||||||
return ERROR(srcSize_wrong);
|
return ERROR(srcSize_wrong);
|
||||||
result = ZSTDv05_getFrameParams(&(zc->params), src, srcSize);
|
result = ZSTDv05_getFrameParams(&(zc->params), src, srcSize);
|
||||||
if ((MEM_32bits()) && (zc->params.windowLog > 25)) return ERROR(frameParameter_unsupportedBy32bits);
|
if ((MEM_32bits()) && (zc->params.windowLog > 25)) return ERROR(frameParameter_unsupported);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3084,7 +3084,7 @@ size_t ZSTDv06_getFrameParams(ZSTDv06_frameParams* fparamsPtr, const void* src,
|
|||||||
static size_t ZSTDv06_decodeFrameHeader(ZSTDv06_DCtx* zc, const void* src, size_t srcSize)
|
static size_t ZSTDv06_decodeFrameHeader(ZSTDv06_DCtx* zc, const void* src, size_t srcSize)
|
||||||
{
|
{
|
||||||
size_t const result = ZSTDv06_getFrameParams(&(zc->fParams), src, srcSize);
|
size_t const result = ZSTDv06_getFrameParams(&(zc->fParams), src, srcSize);
|
||||||
if ((MEM_32bits()) && (zc->fParams.windowLog > 25)) return ERROR(frameParameter_unsupportedBy32bits);
|
if ((MEM_32bits()) && (zc->fParams.windowLog > 25)) return ERROR(frameParameter_unsupported);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user