refactoring for readability

This commit is contained in:
Paul Cruz 2017-06-20 10:12:13 -07:00
parent 6f17de2132
commit b8237c6c66

View File

@ -1166,61 +1166,60 @@ static U32 generateFrame(U32 seed, frame_t* fr, dictInfo info)
*********************************************************/ *********************************************************/
/* returns 0 if successful, otherwise returns 1 upon error */ /* returns 0 if successful, otherwise returns 1 upon error */
static int genRandomDict(U32 dictID, U32 seed, size_t dictSize, BYTE* fullDict){ static int genRandomDict(U32 dictID, U32 seed, size_t dictSize, BYTE* fullDict){
const size_t headerSize = dictSize/4; /* allocate space for samples */
const size_t dictContentSize = dictSize - dictSize/4; unsigned const numSamples = 4;
BYTE* const dictContent = fullDict + headerSize; BYTE* const samples = malloc(5000*sizeof(BYTE));
size_t* const sampleSizes = malloc(numSamples*sizeof(size_t));
/* use 3/4 of dictionary for content, save rest for header/entropy tables */ if (samples == NULL || sampleSizes == NULL) {
if (dictContentSize < ZDICT_CONTENTSIZE_MIN || dictSize < ZDICT_DICTSIZE_MIN) { DISPLAY("Error: could not allocate space for samples.\n");
DISPLAY("Error: dictionary size is too small\n");
return 1; return 1;
} }
/* fill in dictionary content */ /* generate samples */
RAND_buffer(&seed, (void*)dictContent, dictContentSize);
/* allocate space for samples */
{ {
unsigned i = 1;
size_t currSize = 1;
BYTE* curr = samples;
while (i <= 4) {
*(sampleSizes + i - 1) = currSize;
{
size_t j;
for (j = 0; j < currSize; j++) {
*(curr++) = (BYTE)i;
}
}
i++;
currSize *= 16;
}
}
{
/* create variables */
size_t dictWriteSize = 0; size_t dictWriteSize = 0;
unsigned const numSamples = 4; ZDICT_params_t zdictParams;
BYTE* const samples = malloc(5000*sizeof(BYTE)); size_t const headerSize = dictSize/4;
size_t* const sampleSizes = malloc(numSamples*sizeof(size_t)); size_t const dictContentSize = dictSize - dictSize/4;
if (samples == NULL || sampleSizes == NULL) { BYTE* const dictContent = fullDict + headerSize;
DISPLAY("Error: could not generate samples for the dictionary.\n"); if (dictContentSize < ZDICT_CONTENTSIZE_MIN || dictSize < ZDICT_DICTSIZE_MIN) {
DISPLAY("Error: dictionary size is too small\n");
return 1; return 1;
} }
/* generate samples */ /* init dictionary params */
{ memset(&zdictParams, 0, sizeof(zdictParams));
unsigned i = 1; zdictParams.dictID = dictID;
size_t currSize = 1; zdictParams.notificationLevel = 1;
BYTE* curr = samples;
while (i <= 4) {
*(sampleSizes + i - 1) = currSize;
{
size_t j;
for (j = 0; j < currSize; j++) {
*(curr++) = (BYTE)i;
}
}
i++;
currSize *= 16;
}
}
/* set dictionary params */ /* fill in dictionary content */
{ RAND_buffer(&seed, (void*)dictContent, dictContentSize);
ZDICT_params_t zdictParams;
memset(&zdictParams, 0, sizeof(zdictParams)); /* finalize dictionary with random samples */
zdictParams.dictID = dictID; dictWriteSize = ZDICT_finalizeDictionary(fullDict, dictSize,
zdictParams.notificationLevel = 1; dictContent, dictContentSize,
samples, sampleSizes, numSamples,
zdictParams);
/* finalize dictionary with random samples */
dictWriteSize = ZDICT_finalizeDictionary(fullDict, dictSize,
dictContent, dictContentSize,
samples, sampleSizes, numSamples,
zdictParams);
}
free(samples); free(samples);
free(sampleSizes); free(sampleSizes);
if (dictWriteSize != dictSize && ZDICT_isError(dictWriteSize)) { if (dictWriteSize != dictSize && ZDICT_isError(dictWriteSize)) {
@ -1228,6 +1227,7 @@ static int genRandomDict(U32 dictID, U32 seed, size_t dictSize, BYTE* fullDict){
return 1; return 1;
} }
} }
return 0; return 0;
} }