mirror of
https://github.com/transmission/transmission
synced 2025-01-31 11:23:40 +00:00
add more assertion tests to try to hunt down the tracker.c bug reported by John_Clay
This commit is contained in:
parent
f0c9f9a99a
commit
d9af0ff829
1 changed files with 14 additions and 2 deletions
|
@ -162,13 +162,24 @@ tr_ptrArrayLowerBound( const tr_ptrArray * t,
|
||||||
return first;
|
return first;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
assertSortedAndUnique( const tr_ptrArray * t,
|
||||||
|
int compare(const void*, const void*) )
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
for( i=0; i<t->n_items-2; ++i )
|
||||||
|
assert( compare( t->items[i], t->items[i+1] ) < 0 );
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
tr_ptrArrayInsertSorted( tr_ptrArray * t,
|
tr_ptrArrayInsertSorted( tr_ptrArray * t,
|
||||||
void * ptr,
|
void * ptr,
|
||||||
int compare(const void*,const void*) )
|
int compare(const void*,const void*) )
|
||||||
{
|
{
|
||||||
const int pos = tr_ptrArrayLowerBound( t, ptr, compare, NULL );
|
const int pos = tr_ptrArrayLowerBound( t, ptr, compare, NULL );
|
||||||
return tr_ptrArrayInsert( t, ptr, pos );
|
const int ret = tr_ptrArrayInsert( t, ptr, pos );
|
||||||
|
assertSortedAndUnique( t, compare );
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
void*
|
void*
|
||||||
|
@ -193,5 +204,6 @@ tr_ptrArrayRemoveSorted( tr_ptrArray * t,
|
||||||
ret = t->items[pos];
|
ret = t->items[pos];
|
||||||
tr_ptrArrayErase( t, pos, pos+1 );
|
tr_ptrArrayErase( t, pos, pos+1 );
|
||||||
}
|
}
|
||||||
|
assertSortedAndUnique( t, compare );
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue