fixed ds-graphscan test to make sure that the memory block size is large enough to fit at least the graph header and the sequence block header (ticket 504)

This commit is contained in:
Vadim Pisarevsky 2010-10-21 12:26:11 +00:00
parent 8deebea735
commit c8fd40b011

View File

@ -2009,7 +2009,7 @@ void CxCore_GraphTest::run( int )
struct_idx = iter = -1;
t = cvTsRandReal(rng)*(max_log_storage_block_size - min_log_storage_block_size) + min_log_storage_block_size;
int block_size = cvRound( exp(t * CV_LOG2) );
block_size = MAX(block_size, (int)(sizeof(CvGraph) + sizeof(CvMemBlock)));
block_size = MAX(block_size, (int)(sizeof(CvGraph) + sizeof(CvMemBlock) + sizeof(CvSeqBlock)));
storage = cvCreateMemStorage(block_size);
@ -2138,7 +2138,11 @@ void CxCore_GraphScanTest::run( int )
{
struct_idx = iter = -1;
t = cvTsRandReal(rng)*(max_log_storage_block_size - min_log_storage_block_size) + min_log_storage_block_size;
storage = cvCreateMemStorage( cvRound( exp(t * CV_LOG2) ) );
int storage_blocksize = cvRound( exp(t * CV_LOG2) );
storage_blocksize = MAX(storage_blocksize, (int)(sizeof(CvGraph) + sizeof(CvMemBlock) + sizeof(CvSeqBlock)));
storage_blocksize = MAX(storage_blocksize, (int)(sizeof(CvGraphEdge) + sizeof(CvMemBlock) + sizeof(CvSeqBlock)));
storage_blocksize = MAX(storage_blocksize, (int)(sizeof(CvGraphVtx) + sizeof(CvMemBlock) + sizeof(CvSeqBlock)));
storage = cvCreateMemStorage(storage_blocksize);
if( gen == 0 )
{