22 Oct
2012
22 Oct
'12
11:31 p.m.
I'm getting a report of a memory leak when using boost wave. I see a similar problem at: https://svn.boost.org/trac/boost/ticket/4346 but supposedly that is fixed for a while. The call stack is: MyDll.dll!operator new(unsigned int count, const std::nothrow_t & __formal) Line 18 + 0x9 bytes C++ MyDll.dll!operator new[](unsigned int count, const std::nothrow_t & x) Line 15 + 0xd bytes C++ MyDll.dll!boost::default_user_allocator_new_delete::malloc(const unsigned int bytes) Line 97 + 0xe bytes C++ MyDll.dll!boost::pool<boost::default_user_allocator_new_delete>::malloc_need _resize() Line 693 + 0x9 bytes C++ MyDll.dll!boost::pool<boost::default_user_allocator_new_delete>::malloc() Line 432 C++ MyDll.dll!boost::singleton_pool<boost::fast_pool_allocator_tag,12,boost::def ault_user_allocator_new_delete,boost::mutex,32,0>::malloc() Line 137 + 0xb bytes C++ MyDll.dll!boost::fast_pool_allocator<std::_List_nod<boost::wave::cpplexer::l ex_token<boost::wave::util::file_position<boost::wave::util::flex_string<cha r,std::char_traits<char>,std::allocator<char>,boost::wave::util::CowString<b oost::wave::util::AllocatorStringStorage<char,std::allocator<char> >,char *> > > >,boost::fast_pool_allocator<boost::wave::cpplexer::lex_token<boost::wave::u til::file_position<boost::wave::util::flex_string<char,std::char_traits<char >,std::allocator<char>,boost::wave::util::CowString<boost::wave::util::Alloc atorStringStorage<char,std::allocator<char> >,char *> > > >,boost::default_user_allocator_new_delete,boost::mutex,32,0> >::_Node,boost::default_user_allocator_new_delete,boost::mutex,32,0>::alloca te(const unsigned int n) Line 419 + 0xb bytes C++ MyDll.dll!std::list<boost::wave::cpplexer::lex_token<boost::wave::util::file _position<boost::wave::util::flex_string<char,std::char_traits<char>,std::al locator<char>,boost::wave::util::CowString<boost::wave::util::AllocatorStrin gStorage<char,std::allocator<char> >,char *> > > >,boost::fast_pool_allocator<boost::wave::cpplexer::lex_token<boost::wave::u til::file_position<boost::wave::util::flex_string<char,std::char_traits<char >,std::allocator<char>,boost::wave::util::CowString<boost::wave::util::Alloc atorStringStorage<char,std::allocator<char> >,char *> > > >,boost::default_user_allocator_new_delete,boost::mutex,32,0> >::_Buynode() Line 1172 + 0x7 bytes C++ MyDll.dll!std::list<boost::wave::cpplexer::lex_token<boost::wave::util::file _position<boost::wave::util::flex_string<char,std::char_traits<char>,std::al locator<char>,boost::wave::util::CowString<boost::wave::util::AllocatorStrin gStorage<char,std::allocator<char> >,char *> > > >,boost::fast_pool_allocator<boost::wave::cpplexer::lex_token<boost::wave::u til::file_position<boost::wave::util::flex_string<char,std::char_traits<char >,std::allocator<char>,boost::wave::util::CowString<boost::wave::util::Alloc atorStringStorage<char,std::allocator<char> >,char *> > > >,boost::default_user_allocator_new_delete,boost::mutex,32,0> >::list<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<bo ost::wave::util::flex_string<char,std::char_traits<char>,std::allocator<char >,boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<cha r,std::allocator<char> >,char *> > > >,boost::fast_pool_allocator<boost::wave::cpplexer::lex_token<boost::wave::u til::file_position<boost::wave::util::flex_string<char,std::char_traits<char >,std::allocator<char>,boost::wave::util::CowString<boost::wave::util::Alloc atorStringStorage<char,std::allocator<char> >,char *> > > >,boost::default_user_allocator_new_delete,boost::mutex,32,0> >() Line 436 + 0x68 bytes C++ MyDll.dll!`dynamic initializer for 'boost::wave::util::impl::gen_unput_queue_iterator<boost::wave::cpplexer::le x_iterator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position <boost::wave::util::flex_string<char,std::char_traits<char>,std::allocator<c har>,boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage< char,std::allocator<char> >,char *> > > > >,boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::w ave::util::flex_string<char,std::char_traits<char>,std::allocator<char>,boos t::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char,std: :allocator<char> >,char *> > > >,std::list<boost::wave::cpplexer::lex_token<boost::wave::util::file_positio n<boost::wave::util::flex_string<char,std::char_traits<char>,std::allocator< char>,boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage <char,std::allocator<char> >,char *> > > >,boost::fast_pool_allocator<boost::wave::cpplexer::lex_token<boost::wave::u til::file_position<boost::wave::util::flex_string<char,std::char_traits<char >,std::allocator<char>,boost::wave::util::CowString<boost::wave::util::Alloc atorStringStorage<char,std::allocator<char> >,char *> > > >,boost::default_user_allocator_new_delete,boost::mutex,32,0> > >::last''() Line 155 + 0x28 bytes C++ msvcr90d.dll!__initterm() + 0x1c bytes