diff --git a/exp-drd/drd_bitmap.c b/exp-drd/drd_bitmap.c index 097b43d83..fed709187 100644 --- a/exp-drd/drd_bitmap.c +++ b/exp-drd/drd_bitmap.c @@ -879,6 +879,11 @@ ULong bm_get_bitmap_creation_count(void) return s_bitmap_creation_count; } +ULong bm_get_bitmap2_node_creation_count(void) +{ + return s_bitmap2_creation_count; +} + ULong bm_get_bitmap2_creation_count(void) { return s_bitmap2_creation_count; diff --git a/exp-drd/drd_bitmap.h b/exp-drd/drd_bitmap.h index 23ef6372c..a860cf4e0 100644 --- a/exp-drd/drd_bitmap.h +++ b/exp-drd/drd_bitmap.h @@ -78,6 +78,7 @@ /* Local variables. */ static ULong s_bitmap2_creation_count; +static ULong s_node_creation_count; @@ -386,6 +387,7 @@ struct bitmap2* bm2_insert(const struct bitmap* const bm, const UWord a1) struct bitmap2ref* bm2ref; struct bitmap2* bm2; + s_node_creation_count++; bm2ref = VG_(OSetGen_AllocNode)(bm->oset, sizeof(*bm2ref)); bm2ref->addr = a1; bm2 = bm2_new(a1); @@ -409,6 +411,8 @@ struct bitmap2* bm2_insert_addref(const struct bitmap* const bm, tl_assert(bm); //tl_assert(VG_(OSetGen_Lookup)(bm->oset, &bm2->addr) == 0); + + s_node_creation_count++; bm2ref = VG_(OSetGen_AllocNode)(bm->oset, sizeof(*bm2ref)); bm2ref->addr = bm2->addr; bm2ref->bm2 = bm2; diff --git a/exp-drd/pub_drd_bitmap.h b/exp-drd/pub_drd_bitmap.h index 8bfdeeb50..d8324e0e8 100644 --- a/exp-drd/pub_drd_bitmap.h +++ b/exp-drd/pub_drd_bitmap.h @@ -112,7 +112,9 @@ void bm_report_races(ThreadId const tid1, ThreadId const tid2, const struct bitmap* const bm2); void bm_print(const struct bitmap* bm); ULong bm_get_bitmap_creation_count(void); +ULong bm_get_bitmap2_node_creation_count(void); ULong bm_get_bitmap2_creation_count(void); + void bm_test(void);