Windows2000/private/inet/urlmon/compress/gzip/optdebug.c
2020-09-30 17:12:32 +02:00

52 lines
1.3 KiB
C

/*
* optdebug.c
* Optimal encoder debugging stubs
*/
#include <string.h>
#include <stdio.h>
#include <crtdbg.h>
#include "deflate.h"
#ifdef _DEBUG
static void OptimalEncoderVerifyTreeStructure(t_encoder_context *context, byte val1, byte val2, long where)
{
long left, right;
if (where == 0)
return;
_ASSERT(context->optimal_encoder->window[where] == val1);
_ASSERT(context->optimal_encoder->window[where+1] == val2);
left = context->optimal_encoder->search_left[where];
right = context->optimal_encoder->search_right[where];
OptimalEncoderVerifyTreeStructure(context, val1, val2, left);
OptimalEncoderVerifyTreeStructure(context, val1, val2, right);
}
void OptimalEncoderVerifyHashes(t_encoder_context *context, long bufpos)
{
long i;
for (i = 0; i < NUM_DIRECT_LOOKUP_TABLE_ELEMENTS; i++)
{
long where = context->optimal_encoder->search_tree_root[i];
USHORT tree_to_use;
if (where == 0)
continue;
tree_to_use = *((USHORT UNALIGNED *) &context->optimal_encoder->window[where]);
_ASSERT(where < bufpos);
_ASSERT(tree_to_use == i);
OptimalEncoderVerifyTreeStructure(context, context->optimal_encoder->window[where], context->optimal_encoder->window[where+1], where);
}
}
#endif