Avoid some uses of an invalid pointer.

[SVN r42580]
This commit is contained in:
Daniel James
2008-01-07 20:06:15 +00:00
parent 6cec477db3
commit 86e01c9c4c

View File

@@ -311,12 +311,15 @@ namespace test
{ {
allocated_memory_type::iterator pos allocated_memory_type::iterator pos
= allocated_memory.find(memory_area(ptr, ptr)); = allocated_memory.find(memory_area(ptr, ptr));
if(pos == allocated_memory.end()) if(pos == allocated_memory.end()) {
BOOST_ERROR("Constructing unknown pointer."); BOOST_ERROR("Constructing unknown pointer.");
}
else {
BOOST_TEST(pos->second.tag_ == tag); BOOST_TEST(pos->second.tag_ == tag);
++count_constructions;
++pos->second.constructed_; ++pos->second.constructed_;
} }
++count_constructions;
}
void track_destroy(void* ptr, std::size_t /*size*/, int tag) void track_destroy(void* ptr, std::size_t /*size*/, int tag)
{ {
@@ -324,12 +327,14 @@ namespace test
= allocated_memory.find(memory_area(ptr, ptr)); = allocated_memory.find(memory_area(ptr, ptr));
if(pos == allocated_memory.end()) if(pos == allocated_memory.end())
BOOST_ERROR("Destroying unknown pointer."); BOOST_ERROR("Destroying unknown pointer.");
BOOST_TEST(count_constructions > 0); else {
BOOST_TEST(pos->second.tag_ == tag); BOOST_TEST(pos->second.tag_ == tag);
BOOST_TEST(pos->second.constructed_ > 0); BOOST_TEST(pos->second.constructed_ > 0);
if(count_constructions > 0) --count_constructions;
if(pos->second.constructed_ > 0) --pos->second.constructed_; if(pos->second.constructed_ > 0) --pos->second.constructed_;
} }
BOOST_TEST(count_constructions > 0);
if(count_constructions > 0) --count_constructions;
}
} }
template <class T> template <class T>