|
From: <sv...@va...> - 2011-03-12 12:37:53
|
Author: bart
Date: 2011-03-12 12:37:46 +0000 (Sat, 12 Mar 2011)
New Revision: 11632
Log:
DRD: Fixed an assertion failure triggered by setting the environment variable DRD_VERIFY_CONFLICT_SET. This environment variable is a debugging help.
Modified:
trunk/drd/drd_bitmap2_node.c
Modified: trunk/drd/drd_bitmap2_node.c
===================================================================
--- trunk/drd/drd_bitmap2_node.c 2011-03-12 12:34:44 UTC (rev 11631)
+++ trunk/drd/drd_bitmap2_node.c 2011-03-12 12:37:46 UTC (rev 11632)
@@ -154,24 +154,22 @@
{
struct block_allocator_chunk* p;
- tl_assert(s_bm2_node_size > 0);
tl_assert(bm2);
- for (p = s_first; p; p = p->next)
- {
- if (p->data <= bm2 && bm2 < p->data_end)
- {
- /* Free the memory that was allocated for a non-root AVL tree node. */
- tl_assert(((char*)bm2 - (char*)(p->data)) % s_bm2_node_size == 0);
- *(void**)bm2 = p->first_free;
- p->first_free = bm2;
- tl_assert(p->nallocated >= 1);
- if (--(p->nallocated) == 0)
- free_chunk(p);
- return;
+ if (s_bm2_node_size > 0) {
+ for (p = s_first; p; p = p->next) {
+ if (p->data <= bm2 && bm2 < p->data_end) {
+ /* Free a non-root AVL tree node. */
+ tl_assert(((char*)bm2 - (char*)(p->data)) % s_bm2_node_size == 0);
+ *(void**)bm2 = p->first_free;
+ p->first_free = bm2;
+ tl_assert(p->nallocated >= 1);
+ if (--(p->nallocated) == 0)
+ free_chunk(p);
+ return;
+ }
}
}
-
/* Free the memory that was allocated for an AVL tree root node. */
VG_(free)(bm2);
}
|