Here is also a result of running the same script under valgrind.
There seems to be plenty room for improvement ;-)
porridge@fujitsu:~/Pulpit/debian/devel/ledgerhelpers/ledger-3.2.1$ valgrind python3 ../ledgerhelpers/dtor.py
==226638== Memcheck, a memory error detector
==226638== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al.
==226638== Using Valgrind-3.19.0 and LibVEX; rerun with -h for copyright info
==226638== Command: python3 ../ledgerhelpers/dtor.py
==226638==
Done.
==226638== Invalid read of size 8
==226638== at 0x57E7FCB: begin (stl_list.h:1023)
==226638== by 0x57E7FCB: range_begin<std::__cxx11::list<ledger::xact_t*> > (begin.hpp:45)
==226638== by 0x57E7FCB: begin<std::__cxx11::list<ledger::xact_t*> > (begin.hpp:103)
==226638== by 0x57E7FCB: begin<std::__cxx11::list<ledger::xact_t*>, mpl_::bool_<false> > (foreach.hpp:680)
==226638== by 0x57E7FCB: ledger::journal_t::clear_xdata() (journal.cc:516)
==226638== by 0x58DFAF1: ~collector_wrapper (py_journal.cc:164)
==226638== by 0x58DFAF1: checked_delete<ledger::(anonymous namespace)::collector_wrapper> (checked_delete.hpp:36)
==226638== by 0x58DFAF1: checked_delete<ledger::(anonymous namespace)::collector_wrapper> (checked_delete.hpp:31)
==226638== by 0x58DFAF1: boost::detail::sp_counted_impl_p<ledger::(anonymous namespace)::collector_wrapper>::dispose() (sp_counted_impl.hpp:89)
==226638== by 0x58DC50C: UnknownInlinedFun (sp_counted_base_gcc_atomic.hpp:120)
==226638== by 0x58DC50C: UnknownInlinedFun (sp_counted_base_gcc_atomic.hpp:116)
==226638== by 0x58DC50C: ~shared_count (shared_count.hpp:432)
==226638== by 0x58DC50C: ~shared_ptr (shared_ptr.hpp:335)
==226638== by 0x58DC50C: boost::python::objects::pointer_holder<boost::shared_ptr<ledger::(anonymous namespace)::collector_wrapper>, ledger::(anonymous namespace)::collector_wrapper>::~pointer_holder() (pointer_holder.hpp:51)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x58E180C: UnknownInlinedFun (object.h:500)
==226638== by 0x58E180C: ~object_base (object_core.hpp:423)
==226638== by 0x58E180C: ~object (object_core.hpp:238)
==226638== by 0x58E180C: ~iterator_range (iterator.hpp:41)
==226638== by 0x58E180C: boost::python::objects::value_holder<boost::python::objects::iterator_range<boost::python::return_internal_reference<1ul, boost::python::default_call_policies>, __gnu_cxx::__normal_iterator<ledger::post_t**, std::vector<ledger::post_t*, std::allocator<ledger::post_t*> > > > >::~value_holder() (value_holder.hpp:39)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:500)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:567)
==226638== by 0x5EF54A4: life_support_call (life_support.cpp:30)
==226638== by 0x28401A: _PyObject_MakeTpCall (call.c:215)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:112)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:184)
==226638== by 0x2A5D82: handle_callback.lto_priv.0 (weakrefobject.c:952)
==226638== by 0x2A25E0: PyObject_ClearWeakRefs (weakrefobject.c:998)
==226638== Address 0x4eba840 is 16 bytes inside a block of size 544 free'd
==226638== at 0x484671B: operator delete(void*) (vg_replace_malloc.c:923)
==226638== by 0x57BA7C9: operator() (unique_ptr.h:95)
==226638== by 0x57BA7C9: ~unique_ptr (unique_ptr.h:396)
==226638== by 0x57BA7C9: ledger::session_t::~session_t() (session.h:80)
==226638== by 0x58FC52B: boost::python::objects::value_holder<ledger::session_t>::~value_holder() (value_holder.hpp:39)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:500)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:567)
==226638== by 0x5EF54A4: life_support_call (life_support.cpp:30)
==226638== by 0x28401A: _PyObject_MakeTpCall (call.c:215)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:112)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:184)
==226638== by 0x2A5D82: handle_callback.lto_priv.0 (weakrefobject.c:952)
==226638== by 0x2A25E0: PyObject_ClearWeakRefs (weakrefobject.c:998)
==226638== by 0x5EEDA75: instance_dealloc (class.cpp:344)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x26D9C8: UnknownInlinedFun (object.c:2300)
==226638== by 0x26D9C8: UnknownInlinedFun (object.h:500)
==226638== by 0x26D9C8: UnknownInlinedFun (object.h:567)
==226638== by 0x26D9C8: free_keys_object.lto_priv.0 (dictobject.c:628)
==226638== Block was alloc'd at
==226638== at 0x4843F2F: operator new(unsigned long) (vg_replace_malloc.c:422)
==226638== by 0x57B518B: ledger::session_t::session_t() (session.cc:62)
==226638== by 0x58FB017: value_holder (value_holder.hpp:131)
==226638== by 0x58FB017: boost::python::objects::make_holder<0>::apply<boost::python::objects::value_holder<ledger::session_t>, boost::mpl::vector0<mpl_::na> >::execute(_object*) (make_holder.hpp:94)
==226638== by 0x588BA6D: UnknownInlinedFun (invoke.hpp:79)
==226638== by 0x588BA6D: operator() (caller.hpp:233)
==226638== by 0x588BA6D: boost::python::objects::caller_py_function_impl<boost::python::detail::caller<void (*)(_object*), boost::python::default_call_policies, boost::mpl::vector2<void, _object*> > >::operator()(_object*, _object*) (py_function.hpp:38)
==226638== by 0x5EF145C: operator() (py_function.hpp:147)
==226638== by 0x5EF145C: boost::python::objects::function::call(_object*, _object*) const (function.cpp:221)
==226638== by 0x5EF1627: operator() (function.cpp:581)
==226638== by 0x5EF1627: boost::detail::function::void_function_ref_invoker0<boost::python::objects::(anonymous namespace)::bind_return, void>::invoke(boost::detail::function::function_buffer&) (function_template.hpp:193)
==226638== by 0x5EF659A: operator() (function_template.hpp:763)
==226638== by 0x5EF659A: boost::python::detail::exception_handler::operator()(boost::function0<void> const&) const (errors.cpp:74)
==226638== by 0x58E4692: operator() (translate_exception.hpp:46)
==226638== by 0x58E4692: operator()<bool, boost::python::detail::translate_exception<ledger::error_count, void (*)(const ledger::error_count&)>, boost::_bi::rrlist2<const boost::python::detail::exception_handler&, const boost::function0<void>&> > (bind.hpp:388)
==226638== by 0x58E4692: operator()<const boost::python::detail::exception_handler&, const boost::function0<void>&> (bind.hpp:1318)
==226638== by 0x58E4692: boost::detail::function::function_obj_invoker2<boost::_bi::bind_t<bool, boost::python::detail::translate_exception<ledger::error_count, void (*)(ledger::error_count const&)>, boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<void (*)(ledger::error_count const&)> > >, bool, boost::python::detail::exception_handler const&, boost::function0<void> const&>::invoke(boost::detail::function::function_buffer&, boost::python::detail::exception_handler const&, boost::function0<void> const&) (function_template.hpp:137)
==226638== by 0x58E46E2: operator() (translate_exception.hpp:46)
==226638== by 0x58E46E2: operator()<bool, boost::python::detail::translate_exception<ledger::parse_error, void (*)(const ledger::parse_error&)>, boost::_bi::rrlist2<const boost::python::detail::exception_handler&, const boost::function0<void>&> > (bind.hpp:388)
==226638== by 0x58E46E2: operator()<const boost::python::detail::exception_handler&, const boost::function0<void>&> (bind.hpp:1318)
==226638== by 0x58E46E2: boost::detail::function::function_obj_invoker2<boost::_bi::bind_t<bool, boost::python::detail::translate_exception<ledger::parse_error, void (*)(ledger::parse_error const&)>, boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<void (*)(ledger::parse_error const&)> > >, bool, boost::python::detail::exception_handler const&, boost::function0<void> const&>::invoke(boost::detail::function::function_buffer&, boost::python::detail::exception_handler const&, boost::function0<void> const&) (function_template.hpp:137)
==226638== by 0x58AF372: operator() (translate_exception.hpp:46)
==226638== by 0x58AF372: operator()<bool, boost::python::detail::translate_exception<ledger::balance_error, void (*)(const ledger::balance_error&)>, boost::_bi::rrlist2<const boost::python::detail::exception_handler&, const boost::function0<void>&> > (bind.hpp:388)
==226638== by 0x58AF372: operator()<const boost::python::detail::exception_handler&, const boost::function0<void>&> (bind.hpp:1318)
==226638== by 0x58AF372: boost::detail::function::function_obj_invoker2<boost::_bi::bind_t<bool, boost::python::detail::translate_exception<ledger::balance_error, void (*)(ledger::balance_error const&)>, boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<void (*)(ledger::balance_error const&)> > >, bool, boost::python::detail::exception_handler const&, boost::function0<void> const&>::invoke(boost::detail::function::function_buffer&, boost::python::detail::exception_handler const&, boost::function0<void> const&) (function_template.hpp:137)
==226638== by 0x590D412: operator() (translate_exception.hpp:46)
==226638== by 0x590D412: operator()<bool, boost::python::detail::translate_exception<ledger::value_error, void (*)(const ledger::value_error&)>, boost::_bi::rrlist2<const boost::python::detail::exception_handler&, const boost::function0<void>&> > (bind.hpp:388)
==226638== by 0x590D412: operator()<const boost::python::detail::exception_handler&, const boost::function0<void>&> (bind.hpp:1318)
==226638== by 0x590D412: boost::detail::function::function_obj_invoker2<boost::_bi::bind_t<bool, boost::python::detail::translate_exception<ledger::value_error, void (*)(ledger::value_error const&)>, boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<void (*)(ledger::value_error const&)> > >, bool, boost::python::detail::exception_handler const&, boost::function0<void> const&>::invoke(boost::detail::function::function_buffer&, boost::python::detail::exception_handler const&, boost::function0<void> const&) (function_template.hpp:137)
==226638== by 0x58A4492: operator() (translate_exception.hpp:46)
==226638== by 0x58A4492: operator()<bool, boost::python::detail::translate_exception<ledger::amount_error, void (*)(const ledger::amount_error&)>, boost::_bi::rrlist2<const boost::python::detail::exception_handler&, const boost::function0<void>&> > (bind.hpp:388)
==226638== by 0x58A4492: operator()<const boost::python::detail::exception_handler&, const boost::function0<void>&> (bind.hpp:1318)
==226638== by 0x58A4492: boost::detail::function::function_obj_invoker2<boost::_bi::bind_t<bool, boost::python::detail::translate_exception<ledger::amount_error, void (*)(ledger::amount_error const&)>, boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<void (*)(ledger::amount_error const&)> > >, bool, boost::python::detail::exception_handler const&, boost::function0<void> const&>::invoke(boost::detail::function::function_buffer&, boost::python::detail::exception_handler const&, boost::function0<void> const&) (function_template.hpp:137)
==226638==
==226638== Invalid read of size 8
==226638== at 0x57E7FD8: ledger::journal_t::clear_xdata() (journal.cc:516)
==226638== by 0x58DFAF1: ~collector_wrapper (py_journal.cc:164)
==226638== by 0x58DFAF1: checked_delete<ledger::(anonymous namespace)::collector_wrapper> (checked_delete.hpp:36)
==226638== by 0x58DFAF1: checked_delete<ledger::(anonymous namespace)::collector_wrapper> (checked_delete.hpp:31)
==226638== by 0x58DFAF1: boost::detail::sp_counted_impl_p<ledger::(anonymous namespace)::collector_wrapper>::dispose() (sp_counted_impl.hpp:89)
==226638== by 0x58DC50C: UnknownInlinedFun (sp_counted_base_gcc_atomic.hpp:120)
==226638== by 0x58DC50C: UnknownInlinedFun (sp_counted_base_gcc_atomic.hpp:116)
==226638== by 0x58DC50C: ~shared_count (shared_count.hpp:432)
==226638== by 0x58DC50C: ~shared_ptr (shared_ptr.hpp:335)
==226638== by 0x58DC50C: boost::python::objects::pointer_holder<boost::shared_ptr<ledger::(anonymous namespace)::collector_wrapper>, ledger::(anonymous namespace)::collector_wrapper>::~pointer_holder() (pointer_holder.hpp:51)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x58E180C: UnknownInlinedFun (object.h:500)
==226638== by 0x58E180C: ~object_base (object_core.hpp:423)
==226638== by 0x58E180C: ~object (object_core.hpp:238)
==226638== by 0x58E180C: ~iterator_range (iterator.hpp:41)
==226638== by 0x58E180C: boost::python::objects::value_holder<boost::python::objects::iterator_range<boost::python::return_internal_reference<1ul, boost::python::default_call_policies>, __gnu_cxx::__normal_iterator<ledger::post_t**, std::vector<ledger::post_t*, std::allocator<ledger::post_t*> > > > >::~value_holder() (value_holder.hpp:39)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:500)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:567)
==226638== by 0x5EF54A4: life_support_call (life_support.cpp:30)
==226638== by 0x28401A: _PyObject_MakeTpCall (call.c:215)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:112)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:184)
==226638== by 0x2A5D82: handle_callback.lto_priv.0 (weakrefobject.c:952)
==226638== by 0x2A25E0: PyObject_ClearWeakRefs (weakrefobject.c:998)
==226638== Address 0x4ebf2f0 is 16 bytes inside a block of size 24 free'd
==226638== at 0x484671B: operator delete(void*) (vg_replace_malloc.c:923)
==226638== by 0x57EB90A: deallocate (new_allocator.h:158)
==226638== by 0x57EB90A: deallocate (alloc_traits.h:496)
==226638== by 0x57EB90A: _M_put_node (stl_list.h:522)
==226638== by 0x57EB90A: _M_clear (list.tcc:81)
==226638== by 0x57EB90A: ~_List_base (stl_list.h:575)
==226638== by 0x57EB90A: ~list (stl_list.h:903)
==226638== by 0x57EB90A: ledger::journal_t::~journal_t() (journal.cc:83)
==226638== by 0x57BA7C1: operator() (unique_ptr.h:95)
==226638== by 0x57BA7C1: ~unique_ptr (unique_ptr.h:396)
==226638== by 0x57BA7C1: ledger::session_t::~session_t() (session.h:80)
==226638== by 0x58FC52B: boost::python::objects::value_holder<ledger::session_t>::~value_holder() (value_holder.hpp:39)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:500)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:567)
==226638== by 0x5EF54A4: life_support_call (life_support.cpp:30)
==226638== by 0x28401A: _PyObject_MakeTpCall (call.c:215)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:112)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:184)
==226638== by 0x2A5D82: handle_callback.lto_priv.0 (weakrefobject.c:952)
==226638== by 0x2A25E0: PyObject_ClearWeakRefs (weakrefobject.c:998)
==226638== by 0x5EEDA75: instance_dealloc (class.cpp:344)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== Block was alloc'd at
==226638== at 0x4843F2F: operator new(unsigned long) (vg_replace_malloc.c:422)
==226638== by 0x57E9905: allocate (new_allocator.h:137)
==226638== by 0x57E9905: allocate (alloc_traits.h:464)
==226638== by 0x57E9905: _M_get_node (stl_list.h:518)
==226638== by 0x57E9905: _M_create_node<ledger::xact_t* const&> (stl_list.h:710)
==226638== by 0x57E9905: _M_insert<ledger::xact_t* const&> (stl_list.h:2005)
==226638== by 0x57E9905: push_back (stl_list.h:1306)
==226638== by 0x57E9905: ledger::journal_t::add_xact(ledger::xact_t*) (journal.cc:424)
==226638== by 0x57DFC15: xact_directive (textual.cc:710)
==226638== by 0x57DFC15: ledger::(anonymous namespace)::instance_t::read_next_directive(bool&) (textual.cc:381)
==226638== by 0x57E02DA: ledger::(anonymous namespace)::instance_t::parse() (textual.cc:252)
==226638== by 0x57E06EB: ledger::journal_t::read_textual(ledger::parse_context_stack_t&) (textual.cc:2004)
==226638== by 0x57EA3FA: ledger::journal_t::read(ledger::parse_context_stack_t&) (journal.cc:472)
==226638== by 0x57B3C17: ledger::session_t::read_journal_from_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (session.cc:233)
==226638== by 0x58FBEB9: invoke<boost::python::to_python_indirect<ledger::journal_t*, boost::python::detail::make_reference_holder>, ledger::journal_t* (ledger::session_t::*)(const std::__cxx11::basic_string<char>&), boost::python::arg_from_python<ledger::session_t&>, boost::python::arg_from_python<const std::__cxx11::basic_string<char>&> > (invoke.hpp:86)
==226638== by 0x58FBEB9: operator() (caller.hpp:233)
==226638== by 0x58FBEB9: boost::python::objects::caller_py_function_impl<boost::python::detail::caller<ledger::journal_t* (ledger::session_t::*)(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&), boost::python::return_internal_reference<1ul, boost::python::default_call_policies>, boost::mpl::vector3<ledger::journal_t*, ledger::session_t&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&> > >::operator()(_object*, _object*) (py_function.hpp:38)
==226638== by 0x5EF145C: operator() (py_function.hpp:147)
==226638== by 0x5EF145C: boost::python::objects::function::call(_object*, _object*) const (function.cpp:221)
==226638== by 0x5EF1627: operator() (function.cpp:581)
==226638== by 0x5EF1627: boost::detail::function::void_function_ref_invoker0<boost::python::objects::(anonymous namespace)::bind_return, void>::invoke(boost::detail::function::function_buffer&) (function_template.hpp:193)
==226638== by 0x5EF659A: operator() (function_template.hpp:763)
==226638== by 0x5EF659A: boost::python::detail::exception_handler::operator()(boost::function0<void> const&) const (errors.cpp:74)
==226638== by 0x58E4692: operator() (translate_exception.hpp:46)
==226638== by 0x58E4692: operator()<bool, boost::python::detail::translate_exception<ledger::error_count, void (*)(const ledger::error_count&)>, boost::_bi::rrlist2<const boost::python::detail::exception_handler&, const boost::function0<void>&> > (bind.hpp:388)
==226638== by 0x58E4692: operator()<const boost::python::detail::exception_handler&, const boost::function0<void>&> (bind.hpp:1318)
==226638== by 0x58E4692: boost::detail::function::function_obj_invoker2<boost::_bi::bind_t<bool, boost::python::detail::translate_exception<ledger::error_count, void (*)(ledger::error_count const&)>, boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<void (*)(ledger::error_count const&)> > >, bool, boost::python::detail::exception_handler const&, boost::function0<void> const&>::invoke(boost::detail::function::function_buffer&, boost::python::detail::exception_handler const&, boost::function0<void> const&) (function_template.hpp:137)
==226638==
==226638== Invalid read of size 1
==226638== at 0x57E7FDC: ledger::journal_t::clear_xdata() (journal.cc:517)
==226638== by 0x58DFAF1: ~collector_wrapper (py_journal.cc:164)
==226638== by 0x58DFAF1: checked_delete<ledger::(anonymous namespace)::collector_wrapper> (checked_delete.hpp:36)
==226638== by 0x58DFAF1: checked_delete<ledger::(anonymous namespace)::collector_wrapper> (checked_delete.hpp:31)
==226638== by 0x58DFAF1: boost::detail::sp_counted_impl_p<ledger::(anonymous namespace)::collector_wrapper>::dispose() (sp_counted_impl.hpp:89)
==226638== by 0x58DC50C: UnknownInlinedFun (sp_counted_base_gcc_atomic.hpp:120)
==226638== by 0x58DC50C: UnknownInlinedFun (sp_counted_base_gcc_atomic.hpp:116)
==226638== by 0x58DC50C: ~shared_count (shared_count.hpp:432)
==226638== by 0x58DC50C: ~shared_ptr (shared_ptr.hpp:335)
==226638== by 0x58DC50C: boost::python::objects::pointer_holder<boost::shared_ptr<ledger::(anonymous namespace)::collector_wrapper>, ledger::(anonymous namespace)::collector_wrapper>::~pointer_holder() (pointer_holder.hpp:51)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x58E180C: UnknownInlinedFun (object.h:500)
==226638== by 0x58E180C: ~object_base (object_core.hpp:423)
==226638== by 0x58E180C: ~object (object_core.hpp:238)
==226638== by 0x58E180C: ~iterator_range (iterator.hpp:41)
==226638== by 0x58E180C: boost::python::objects::value_holder<boost::python::objects::iterator_range<boost::python::return_internal_reference<1ul, boost::python::default_call_policies>, __gnu_cxx::__normal_iterator<ledger::post_t**, std::vector<ledger::post_t*, std::allocator<ledger::post_t*> > > > >::~value_holder() (value_holder.hpp:39)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:500)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:567)
==226638== by 0x5EF54A4: life_support_call (life_support.cpp:30)
==226638== by 0x28401A: _PyObject_MakeTpCall (call.c:215)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:112)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:184)
==226638== by 0x2A5D82: handle_callback.lto_priv.0 (weakrefobject.c:952)
==226638== by 0x2A25E0: PyObject_ClearWeakRefs (weakrefobject.c:998)
==226638== Address 0x4ebdae8 is 8 bytes inside a block of size 352 free'd
==226638== at 0x484671B: operator delete(void*) (vg_replace_malloc.c:923)
==226638== by 0x57EB406: ~xact_t (xact.h:113)
==226638== by 0x57EB406: checked_delete<ledger::xact_t> (checked_delete.hpp:36)
==226638== by 0x57EB406: ledger::journal_t::~journal_t() (journal.cc:74)
==226638== by 0x57BA7C1: operator() (unique_ptr.h:95)
==226638== by 0x57BA7C1: ~unique_ptr (unique_ptr.h:396)
==226638== by 0x57BA7C1: ledger::session_t::~session_t() (session.h:80)
==226638== by 0x58FC52B: boost::python::objects::value_holder<ledger::session_t>::~value_holder() (value_holder.hpp:39)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:500)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:567)
==226638== by 0x5EF54A4: life_support_call (life_support.cpp:30)
==226638== by 0x28401A: _PyObject_MakeTpCall (call.c:215)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:112)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:184)
==226638== by 0x2A5D82: handle_callback.lto_priv.0 (weakrefobject.c:952)
==226638== by 0x2A25E0: PyObject_ClearWeakRefs (weakrefobject.c:998)
==226638== by 0x5EEDA75: instance_dealloc (class.cpp:344)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== Block was alloc'd at
==226638== at 0x4843F2F: operator new(unsigned long) (vg_replace_malloc.c:422)
==226638== by 0x57DDF6A: parse_xact (textual.cc:1791)
==226638== by 0x57DDF6A: xact_directive (textual.cc:707)
==226638== by 0x57DDF6A: ledger::(anonymous namespace)::instance_t::read_next_directive(bool&) (textual.cc:381)
==226638== by 0x57E02DA: ledger::(anonymous namespace)::instance_t::parse() (textual.cc:252)
==226638== by 0x57E06EB: ledger::journal_t::read_textual(ledger::parse_context_stack_t&) (textual.cc:2004)
==226638== by 0x57EA3FA: ledger::journal_t::read(ledger::parse_context_stack_t&) (journal.cc:472)
==226638== by 0x57B3C17: ledger::session_t::read_journal_from_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (session.cc:233)
==226638== by 0x58FBEB9: invoke<boost::python::to_python_indirect<ledger::journal_t*, boost::python::detail::make_reference_holder>, ledger::journal_t* (ledger::session_t::*)(const std::__cxx11::basic_string<char>&), boost::python::arg_from_python<ledger::session_t&>, boost::python::arg_from_python<const std::__cxx11::basic_string<char>&> > (invoke.hpp:86)
==226638== by 0x58FBEB9: operator() (caller.hpp:233)
==226638== by 0x58FBEB9: boost::python::objects::caller_py_function_impl<boost::python::detail::caller<ledger::journal_t* (ledger::session_t::*)(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&), boost::python::return_internal_reference<1ul, boost::python::default_call_policies>, boost::mpl::vector3<ledger::journal_t*, ledger::session_t&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&> > >::operator()(_object*, _object*) (py_function.hpp:38)
==226638== by 0x5EF145C: operator() (py_function.hpp:147)
==226638== by 0x5EF145C: boost::python::objects::function::call(_object*, _object*) const (function.cpp:221)
==226638== by 0x5EF1627: operator() (function.cpp:581)
==226638== by 0x5EF1627: boost::detail::function::void_function_ref_invoker0<boost::python::objects::(anonymous namespace)::bind_return, void>::invoke(boost::detail::function::function_buffer&) (function_template.hpp:193)
==226638== by 0x5EF659A: operator() (function_template.hpp:763)
==226638== by 0x5EF659A: boost::python::detail::exception_handler::operator()(boost::function0<void> const&) const (errors.cpp:74)
==226638== by 0x58E4692: operator() (translate_exception.hpp:46)
==226638== by 0x58E4692: operator()<bool, boost::python::detail::translate_exception<ledger::error_count, void (*)(const ledger::error_count&)>, boost::_bi::rrlist2<const boost::python::detail::exception_handler&, const boost::function0<void>&> > (bind.hpp:388)
==226638== by 0x58E4692: operator()<const boost::python::detail::exception_handler&, const boost::function0<void>&> (bind.hpp:1318)
==226638== by 0x58E4692: boost::detail::function::function_obj_invoker2<boost::_bi::bind_t<bool, boost::python::detail::translate_exception<ledger::error_count, void (*)(ledger::error_count const&)>, boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<void (*)(ledger::error_count const&)> > >, bool, boost::python::detail::exception_handler const&, boost::function0<void> const&>::invoke(boost::detail::function::function_buffer&, boost::python::detail::exception_handler const&, boost::function0<void> const&) (function_template.hpp:137)
==226638== by 0x58E46E2: operator() (translate_exception.hpp:46)
==226638== by 0x58E46E2: operator()<bool, boost::python::detail::translate_exception<ledger::parse_error, void (*)(const ledger::parse_error&)>, boost::_bi::rrlist2<const boost::python::detail::exception_handler&, const boost::function0<void>&> > (bind.hpp:388)
==226638== by 0x58E46E2: operator()<const boost::python::detail::exception_handler&, const boost::function0<void>&> (bind.hpp:1318)
==226638== by 0x58E46E2: boost::detail::function::function_obj_invoker2<boost::_bi::bind_t<bool, boost::python::detail::translate_exception<ledger::parse_error, void (*)(ledger::parse_error const&)>, boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<void (*)(ledger::parse_error const&)> > >, bool, boost::python::detail::exception_handler const&, boost::function0<void> const&>::invoke(boost::detail::function::function_buffer&, boost::python::detail::exception_handler const&, boost::function0<void> const&) (function_template.hpp:137)
==226638==
==226638== Invalid read of size 8
==226638== at 0x57F9085: begin (stl_list.h:1023)
==226638== by 0x57F9085: range_begin<std::__cxx11::list<ledger::post_t*> > (begin.hpp:45)
==226638== by 0x57F9085: begin<std::__cxx11::list<ledger::post_t*> > (begin.hpp:103)
==226638== by 0x57F9085: begin<std::__cxx11::list<ledger::post_t*>, mpl_::bool_<false> > (foreach.hpp:680)
==226638== by 0x57F9085: ledger::xact_base_t::clear_xdata() (xact.cc:97)
==226638== by 0x57E8064: ledger::journal_t::clear_xdata() (journal.cc:518)
==226638== by 0x58DFAF1: ~collector_wrapper (py_journal.cc:164)
==226638== by 0x58DFAF1: checked_delete<ledger::(anonymous namespace)::collector_wrapper> (checked_delete.hpp:36)
==226638== by 0x58DFAF1: checked_delete<ledger::(anonymous namespace)::collector_wrapper> (checked_delete.hpp:31)
==226638== by 0x58DFAF1: boost::detail::sp_counted_impl_p<ledger::(anonymous namespace)::collector_wrapper>::dispose() (sp_counted_impl.hpp:89)
==226638== by 0x58DC50C: UnknownInlinedFun (sp_counted_base_gcc_atomic.hpp:120)
==226638== by 0x58DC50C: UnknownInlinedFun (sp_counted_base_gcc_atomic.hpp:116)
==226638== by 0x58DC50C: ~shared_count (shared_count.hpp:432)
==226638== by 0x58DC50C: ~shared_ptr (shared_ptr.hpp:335)
==226638== by 0x58DC50C: boost::python::objects::pointer_holder<boost::shared_ptr<ledger::(anonymous namespace)::collector_wrapper>, ledger::(anonymous namespace)::collector_wrapper>::~pointer_holder() (pointer_holder.hpp:51)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x58E180C: UnknownInlinedFun (object.h:500)
==226638== by 0x58E180C: ~object_base (object_core.hpp:423)
==226638== by 0x58E180C: ~object (object_core.hpp:238)
==226638== by 0x58E180C: ~iterator_range (iterator.hpp:41)
==226638== by 0x58E180C: boost::python::objects::value_holder<boost::python::objects::iterator_range<boost::python::return_internal_reference<1ul, boost::python::default_call_policies>, __gnu_cxx::__normal_iterator<ledger::post_t**, std::vector<ledger::post_t*, std::allocator<ledger::post_t*> > > > >::~value_holder() (value_holder.hpp:39)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:500)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:567)
==226638== by 0x5EF54A4: life_support_call (life_support.cpp:30)
==226638== by 0x28401A: _PyObject_MakeTpCall (call.c:215)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:112)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:184)
==226638== by 0x2A5D82: handle_callback.lto_priv.0 (weakrefobject.c:952)
==226638== Address 0x4ebdbe0 is 256 bytes inside a block of size 352 free'd
==226638== at 0x484671B: operator delete(void*) (vg_replace_malloc.c:923)
==226638== by 0x57EB406: ~xact_t (xact.h:113)
==226638== by 0x57EB406: checked_delete<ledger::xact_t> (checked_delete.hpp:36)
==226638== by 0x57EB406: ledger::journal_t::~journal_t() (journal.cc:74)
==226638== by 0x57BA7C1: operator() (unique_ptr.h:95)
==226638== by 0x57BA7C1: ~unique_ptr (unique_ptr.h:396)
==226638== by 0x57BA7C1: ledger::session_t::~session_t() (session.h:80)
==226638== by 0x58FC52B: boost::python::objects::value_holder<ledger::session_t>::~value_holder() (value_holder.hpp:39)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:500)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:567)
==226638== by 0x5EF54A4: life_support_call (life_support.cpp:30)
==226638== by 0x28401A: _PyObject_MakeTpCall (call.c:215)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:112)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:184)
==226638== by 0x2A5D82: handle_callback.lto_priv.0 (weakrefobject.c:952)
==226638== by 0x2A25E0: PyObject_ClearWeakRefs (weakrefobject.c:998)
==226638== by 0x5EEDA75: instance_dealloc (class.cpp:344)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== Block was alloc'd at
==226638== at 0x4843F2F: operator new(unsigned long) (vg_replace_malloc.c:422)
==226638== by 0x57DDF6A: parse_xact (textual.cc:1791)
==226638== by 0x57DDF6A: xact_directive (textual.cc:707)
==226638== by 0x57DDF6A: ledger::(anonymous namespace)::instance_t::read_next_directive(bool&) (textual.cc:381)
==226638== by 0x57E02DA: ledger::(anonymous namespace)::instance_t::parse() (textual.cc:252)
==226638== by 0x57E06EB: ledger::journal_t::read_textual(ledger::parse_context_stack_t&) (textual.cc:2004)
==226638== by 0x57EA3FA: ledger::journal_t::read(ledger::parse_context_stack_t&) (journal.cc:472)
==226638== by 0x57B3C17: ledger::session_t::read_journal_from_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (session.cc:233)
==226638== by 0x58FBEB9: invoke<boost::python::to_python_indirect<ledger::journal_t*, boost::python::detail::make_reference_holder>, ledger::journal_t* (ledger::session_t::*)(const std::__cxx11::basic_string<char>&), boost::python::arg_from_python<ledger::session_t&>, boost::python::arg_from_python<const std::__cxx11::basic_string<char>&> > (invoke.hpp:86)
==226638== by 0x58FBEB9: operator() (caller.hpp:233)
==226638== by 0x58FBEB9: boost::python::objects::caller_py_function_impl<boost::python::detail::caller<ledger::journal_t* (ledger::session_t::*)(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&), boost::python::return_internal_reference<1ul, boost::python::default_call_policies>, boost::mpl::vector3<ledger::journal_t*, ledger::session_t&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&> > >::operator()(_object*, _object*) (py_function.hpp:38)
==226638== by 0x5EF145C: operator() (py_function.hpp:147)
==226638== by 0x5EF145C: boost::python::objects::function::call(_object*, _object*) const (function.cpp:221)
==226638== by 0x5EF1627: operator() (function.cpp:581)
==226638== by 0x5EF1627: boost::detail::function::void_function_ref_invoker0<boost::python::objects::(anonymous namespace)::bind_return, void>::invoke(boost::detail::function::function_buffer&) (function_template.hpp:193)
==226638== by 0x5EF659A: operator() (function_template.hpp:763)
==226638== by 0x5EF659A: boost::python::detail::exception_handler::operator()(boost::function0<void> const&) const (errors.cpp:74)
==226638== by 0x58E4692: operator() (translate_exception.hpp:46)
==226638== by 0x58E4692: operator()<bool, boost::python::detail::translate_exception<ledger::error_count, void (*)(const ledger::error_count&)>, boost::_bi::rrlist2<const boost::python::detail::exception_handler&, const boost::function0<void>&> > (bind.hpp:388)
==226638== by 0x58E4692: operator()<const boost::python::detail::exception_handler&, const boost::function0<void>&> (bind.hpp:1318)
==226638== by 0x58E4692: boost::detail::function::function_obj_invoker2<boost::_bi::bind_t<bool, boost::python::detail::translate_exception<ledger::error_count, void (*)(ledger::error_count const&)>, boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<void (*)(ledger::error_count const&)> > >, bool, boost::python::detail::exception_handler const&, boost::function0<void> const&>::invoke(boost::detail::function::function_buffer&, boost::python::detail::exception_handler const&, boost::function0<void> const&) (function_template.hpp:137)
==226638== by 0x58E46E2: operator() (translate_exception.hpp:46)
==226638== by 0x58E46E2: operator()<bool, boost::python::detail::translate_exception<ledger::parse_error, void (*)(const ledger::parse_error&)>, boost::_bi::rrlist2<const boost::python::detail::exception_handler&, const boost::function0<void>&> > (bind.hpp:388)
==226638== by 0x58E46E2: operator()<const boost::python::detail::exception_handler&, const boost::function0<void>&> (bind.hpp:1318)
==226638== by 0x58E46E2: boost::detail::function::function_obj_invoker2<boost::_bi::bind_t<bool, boost::python::detail::translate_exception<ledger::parse_error, void (*)(ledger::parse_error const&)>, boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<void (*)(ledger::parse_error const&)> > >, bool, boost::python::detail::exception_handler const&, boost::function0<void> const&>::invoke(boost::detail::function::function_buffer&, boost::python::detail::exception_handler const&, boost::function0<void> const&) (function_template.hpp:137)
==226638==
==226638== Invalid read of size 8
==226638== at 0x57F90AD: ledger::xact_base_t::clear_xdata() (xact.cc:97)
==226638== by 0x57E8064: ledger::journal_t::clear_xdata() (journal.cc:518)
==226638== by 0x58DFAF1: ~collector_wrapper (py_journal.cc:164)
==226638== by 0x58DFAF1: checked_delete<ledger::(anonymous namespace)::collector_wrapper> (checked_delete.hpp:36)
==226638== by 0x58DFAF1: checked_delete<ledger::(anonymous namespace)::collector_wrapper> (checked_delete.hpp:31)
==226638== by 0x58DFAF1: boost::detail::sp_counted_impl_p<ledger::(anonymous namespace)::collector_wrapper>::dispose() (sp_counted_impl.hpp:89)
==226638== by 0x58DC50C: UnknownInlinedFun (sp_counted_base_gcc_atomic.hpp:120)
==226638== by 0x58DC50C: UnknownInlinedFun (sp_counted_base_gcc_atomic.hpp:116)
==226638== by 0x58DC50C: ~shared_count (shared_count.hpp:432)
==226638== by 0x58DC50C: ~shared_ptr (shared_ptr.hpp:335)
==226638== by 0x58DC50C: boost::python::objects::pointer_holder<boost::shared_ptr<ledger::(anonymous namespace)::collector_wrapper>, ledger::(anonymous namespace)::collector_wrapper>::~pointer_holder() (pointer_holder.hpp:51)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x58E180C: UnknownInlinedFun (object.h:500)
==226638== by 0x58E180C: ~object_base (object_core.hpp:423)
==226638== by 0x58E180C: ~object (object_core.hpp:238)
==226638== by 0x58E180C: ~iterator_range (iterator.hpp:41)
==226638== by 0x58E180C: boost::python::objects::value_holder<boost::python::objects::iterator_range<boost::python::return_internal_reference<1ul, boost::python::default_call_policies>, __gnu_cxx::__normal_iterator<ledger::post_t**, std::vector<ledger::post_t*, std::allocator<ledger::post_t*> > > > >::~value_holder() (value_holder.hpp:39)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:500)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:567)
==226638== by 0x5EF54A4: life_support_call (life_support.cpp:30)
==226638== by 0x28401A: _PyObject_MakeTpCall (call.c:215)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:112)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:184)
==226638== by 0x2A5D82: handle_callback.lto_priv.0 (weakrefobject.c:952)
==226638== Address 0x4ebe820 is 16 bytes inside a block of size 24 free'd
==226638== at 0x484671B: operator delete(void*) (vg_replace_malloc.c:923)
==226638== by 0x57FE00A: deallocate (new_allocator.h:158)
==226638== by 0x57FE00A: deallocate (alloc_traits.h:496)
==226638== by 0x57FE00A: _M_put_node (stl_list.h:522)
==226638== by 0x57FE00A: _M_clear (list.tcc:81)
==226638== by 0x57FE00A: ~_List_base (stl_list.h:575)
==226638== by 0x57FE00A: ~list (stl_list.h:903)
==226638== by 0x57FE00A: ledger::xact_base_t::~xact_base_t() (xact.cc:65)
==226638== by 0x57EB3FE: ~xact_t (xact.h:113)
==226638== by 0x57EB3FE: ~xact_t (xact.h:113)
==226638== by 0x57EB3FE: checked_delete<ledger::xact_t> (checked_delete.hpp:36)
==226638== by 0x57EB3FE: ledger::journal_t::~journal_t() (journal.cc:74)
==226638== by 0x57BA7C1: operator() (unique_ptr.h:95)
==226638== by 0x57BA7C1: ~unique_ptr (unique_ptr.h:396)
==226638== by 0x57BA7C1: ledger::session_t::~session_t() (session.h:80)
==226638== by 0x58FC52B: boost::python::objects::value_holder<ledger::session_t>::~value_holder() (value_holder.hpp:39)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:500)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:567)
==226638== by 0x5EF54A4: life_support_call (life_support.cpp:30)
==226638== by 0x28401A: _PyObject_MakeTpCall (call.c:215)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:112)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:184)
==226638== by 0x2A5D82: handle_callback.lto_priv.0 (weakrefobject.c:952)
==226638== by 0x2A25E0: PyObject_ClearWeakRefs (weakrefobject.c:998)
==226638== by 0x5EEDA75: instance_dealloc (class.cpp:344)
==226638== Block was alloc'd at
==226638== at 0x4843F2F: operator new(unsigned long) (vg_replace_malloc.c:422)
==226638== by 0x57F7D67: allocate (new_allocator.h:137)
==226638== by 0x57F7D67: allocate (alloc_traits.h:464)
==226638== by 0x57F7D67: _M_get_node (stl_list.h:518)
==226638== by 0x57F7D67: _M_create_node<ledger::post_t* const&> (stl_list.h:710)
==226638== by 0x57F7D67: _M_insert<ledger::post_t* const&> (stl_list.h:2005)
==226638== by 0x57F7D67: push_back (stl_list.h:1306)
==226638== by 0x57F7D67: ledger::xact_base_t::add_post(ledger::post_t*) (xact.cc:76)
==226638== by 0x57DF224: parse_xact (textual.cc:1943)
==226638== by 0x57DF224: xact_directive (textual.cc:707)
==226638== by 0x57DF224: ledger::(anonymous namespace)::instance_t::read_next_directive(bool&) (textual.cc:381)
==226638== by 0x57E02DA: ledger::(anonymous namespace)::instance_t::parse() (textual.cc:252)
==226638== by 0x57E06EB: ledger::journal_t::read_textual(ledger::parse_context_stack_t&) (textual.cc:2004)
==226638== by 0x57EA3FA: ledger::journal_t::read(ledger::parse_context_stack_t&) (journal.cc:472)
==226638== by 0x57B3C17: ledger::session_t::read_journal_from_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (session.cc:233)
==226638== by 0x58FBEB9: invoke<boost::python::to_python_indirect<ledger::journal_t*, boost::python::detail::make_reference_holder>, ledger::journal_t* (ledger::session_t::*)(const std::__cxx11::basic_string<char>&), boost::python::arg_from_python<ledger::session_t&>, boost::python::arg_from_python<const std::__cxx11::basic_string<char>&> > (invoke.hpp:86)
==226638== by 0x58FBEB9: operator() (caller.hpp:233)
==226638== by 0x58FBEB9: boost::python::objects::caller_py_function_impl<boost::python::detail::caller<ledger::journal_t* (ledger::session_t::*)(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&), boost::python::return_internal_reference<1ul, boost::python::default_call_policies>, boost::mpl::vector3<ledger::journal_t*, ledger::session_t&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&> > >::operator()(_object*, _object*) (py_function.hpp:38)
==226638== by 0x5EF145C: operator() (py_function.hpp:147)
==226638== by 0x5EF145C: boost::python::objects::function::call(_object*, _object*) const (function.cpp:221)
==226638== by 0x5EF1627: operator() (function.cpp:581)
==226638== by 0x5EF1627: boost::detail::function::void_function_ref_invoker0<boost::python::objects::(anonymous namespace)::bind_return, void>::invoke(boost::detail::function::function_buffer&) (function_template.hpp:193)
==226638== by 0x5EF659A: operator() (function_template.hpp:763)
==226638== by 0x5EF659A: boost::python::detail::exception_handler::operator()(boost::function0<void> const&) const (errors.cpp:74)
==226638== by 0x58E4692: operator() (translate_exception.hpp:46)
==226638== by 0x58E4692: operator()<bool, boost::python::detail::translate_exception<ledger::error_count, void (*)(const ledger::error_count&)>, boost::_bi::rrlist2<const boost::python::detail::exception_handler&, const boost::function0<void>&> > (bind.hpp:388)
==226638== by 0x58E4692: operator()<const boost::python::detail::exception_handler&, const boost::function0<void>&> (bind.hpp:1318)
==226638== by 0x58E4692: boost::detail::function::function_obj_invoker2<boost::_bi::bind_t<bool, boost::python::detail::translate_exception<ledger::error_count, void (*)(ledger::error_count const&)>, boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<void (*)(ledger::error_count const&)> > >, bool, boost::python::detail::exception_handler const&, boost::function0<void> const&>::invoke(boost::detail::function::function_buffer&, boost::python::detail::exception_handler const&, boost::function0<void> const&) (function_template.hpp:137)
==226638==
==226638== Invalid read of size 1
==226638== at 0x57F90B1: ledger::xact_base_t::clear_xdata() (xact.cc:98)
==226638== by 0x57E8064: ledger::journal_t::clear_xdata() (journal.cc:518)
==226638== by 0x58DFAF1: ~collector_wrapper (py_journal.cc:164)
==226638== by 0x58DFAF1: checked_delete<ledger::(anonymous namespace)::collector_wrapper> (checked_delete.hpp:36)
==226638== by 0x58DFAF1: checked_delete<ledger::(anonymous namespace)::collector_wrapper> (checked_delete.hpp:31)
==226638== by 0x58DFAF1: boost::detail::sp_counted_impl_p<ledger::(anonymous namespace)::collector_wrapper>::dispose() (sp_counted_impl.hpp:89)
==226638== by 0x58DC50C: UnknownInlinedFun (sp_counted_base_gcc_atomic.hpp:120)
==226638== by 0x58DC50C: UnknownInlinedFun (sp_counted_base_gcc_atomic.hpp:116)
==226638== by 0x58DC50C: ~shared_count (shared_count.hpp:432)
==226638== by 0x58DC50C: ~shared_ptr (shared_ptr.hpp:335)
==226638== by 0x58DC50C: boost::python::objects::pointer_holder<boost::shared_ptr<ledger::(anonymous namespace)::collector_wrapper>, ledger::(anonymous namespace)::collector_wrapper>::~pointer_holder() (pointer_holder.hpp:51)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x58E180C: UnknownInlinedFun (object.h:500)
==226638== by 0x58E180C: ~object_base (object_core.hpp:423)
==226638== by 0x58E180C: ~object (object_core.hpp:238)
==226638== by 0x58E180C: ~iterator_range (iterator.hpp:41)
==226638== by 0x58E180C: boost::python::objects::value_holder<boost::python::objects::iterator_range<boost::python::return_internal_reference<1ul, boost::python::default_call_policies>, __gnu_cxx::__normal_iterator<ledger::post_t**, std::vector<ledger::post_t*, std::allocator<ledger::post_t*> > > > >::~value_holder() (value_holder.hpp:39)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:500)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:567)
==226638== by 0x5EF54A4: life_support_call (life_support.cpp:30)
==226638== by 0x28401A: _PyObject_MakeTpCall (call.c:215)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:112)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:184)
==226638== by 0x2A5D82: handle_callback.lto_priv.0 (weakrefobject.c:952)
==226638== Address 0x4ebdc88 is 8 bytes inside a block of size 552 free'd
==226638== at 0x484671B: operator delete(void*) (vg_replace_malloc.c:923)
==226638== by 0x57FDF4B: ~post_t (post.h:106)
==226638== by 0x57FDF4B: checked_delete<ledger::post_t> (checked_delete.hpp:36)
==226638== by 0x57FDF4B: ledger::xact_base_t::~xact_base_t() (xact.cc:62)
==226638== by 0x57EB3FE: ~xact_t (xact.h:113)
==226638== by 0x57EB3FE: ~xact_t (xact.h:113)
==226638== by 0x57EB3FE: checked_delete<ledger::xact_t> (checked_delete.hpp:36)
==226638== by 0x57EB3FE: ledger::journal_t::~journal_t() (journal.cc:74)
==226638== by 0x57BA7C1: operator() (unique_ptr.h:95)
==226638== by 0x57BA7C1: ~unique_ptr (unique_ptr.h:396)
==226638== by 0x57BA7C1: ledger::session_t::~session_t() (session.h:80)
==226638== by 0x58FC52B: boost::python::objects::value_holder<ledger::session_t>::~value_holder() (value_holder.hpp:39)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:500)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:567)
==226638== by 0x5EF54A4: life_support_call (life_support.cpp:30)
==226638== by 0x28401A: _PyObject_MakeTpCall (call.c:215)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:112)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:184)
==226638== by 0x2A5D82: handle_callback.lto_priv.0 (weakrefobject.c:952)
==226638== by 0x2A25E0: PyObject_ClearWeakRefs (weakrefobject.c:998)
==226638== by 0x5EEDA75: instance_dealloc (class.cpp:344)
==226638== Block was alloc'd at
==226638== at 0x4843F2F: operator new(unsigned long) (vg_replace_malloc.c:422)
==226638== by 0x57D5D89: ledger::(anonymous namespace)::instance_t::parse_post(char*, long, ledger::account_t*, ledger::xact_t*, bool) (textual.cc:1403)
==226638== by 0x57DF209: parse_xact (textual.cc:1941)
==226638== by 0x57DF209: xact_directive (textual.cc:707)
==226638== by 0x57DF209: ledger::(anonymous namespace)::instance_t::read_next_directive(bool&) (textual.cc:381)
==226638== by 0x57E02DA: ledger::(anonymous namespace)::instance_t::parse() (textual.cc:252)
==226638== by 0x57E06EB: ledger::journal_t::read_textual(ledger::parse_context_stack_t&) (textual.cc:2004)
==226638== by 0x57EA3FA: ledger::journal_t::read(ledger::parse_context_stack_t&) (journal.cc:472)
==226638== by 0x57B3C17: ledger::session_t::read_journal_from_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (session.cc:233)
==226638== by 0x58FBEB9: invoke<boost::python::to_python_indirect<ledger::journal_t*, boost::python::detail::make_reference_holder>, ledger::journal_t* (ledger::session_t::*)(const std::__cxx11::basic_string<char>&), boost::python::arg_from_python<ledger::session_t&>, boost::python::arg_from_python<const std::__cxx11::basic_string<char>&> > (invoke.hpp:86)
==226638== by 0x58FBEB9: operator() (caller.hpp:233)
==226638== by 0x58FBEB9: boost::python::objects::caller_py_function_impl<boost::python::detail::caller<ledger::journal_t* (ledger::session_t::*)(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&), boost::python::return_internal_reference<1ul, boost::python::default_call_policies>, boost::mpl::vector3<ledger::journal_t*, ledger::session_t&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&> > >::operator()(_object*, _object*) (py_function.hpp:38)
==226638== by 0x5EF145C: operator() (py_function.hpp:147)
==226638== by 0x5EF145C: boost::python::objects::function::call(_object*, _object*) const (function.cpp:221)
==226638== by 0x5EF1627: operator() (function.cpp:581)
==226638== by 0x5EF1627: boost::detail::function::void_function_ref_invoker0<boost::python::objects::(anonymous namespace)::bind_return, void>::invoke(boost::detail::function::function_buffer&) (function_template.hpp:193)
==226638== by 0x5EF659A: operator() (function_template.hpp:763)
==226638== by 0x5EF659A: boost::python::detail::exception_handler::operator()(boost::function0<void> const&) const (errors.cpp:74)
==226638== by 0x58E4692: operator() (translate_exception.hpp:46)
==226638== by 0x58E4692: operator()<bool, boost::python::detail::translate_exception<ledger::error_count, void (*)(const ledger::error_count&)>, boost::_bi::rrlist2<const boost::python::detail::exception_handler&, const boost::function0<void>&> > (bind.hpp:388)
==226638== by 0x58E4692: operator()<const boost::python::detail::exception_handler&, const boost::function0<void>&> (bind.hpp:1318)
==226638== by 0x58E4692: boost::detail::function::function_obj_invoker2<boost::_bi::bind_t<bool, boost::python::detail::translate_exception<ledger::error_count, void (*)(ledger::error_count const&)>, boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<void (*)(ledger::error_count const&)> > >, bool, boost::python::detail::exception_handler const&, boost::function0<void> const&>::invoke(boost::detail::function::function_buffer&, boost::python::detail::exception_handler const&, boost::function0<void> const&) (function_template.hpp:137)
==226638==
==226638== Invalid read of size 1
==226638== at 0x57F90B8: destroy (optional.hpp:756)
==226638== by 0x57F90B8: assign (optional.hpp:357)
==226638== by 0x57F90B8: operator= (optional.hpp:1101)
==226638== by 0x57F90B8: clear_xdata (post.h:211)
==226638== by 0x57F90B8: ledger::xact_base_t::clear_xdata() (xact.cc:99)
==226638== by 0x57E8064: ledger::journal_t::clear_xdata() (journal.cc:518)
==226638== by 0x58DFAF1: ~collector_wrapper (py_journal.cc:164)
==226638== by 0x58DFAF1: checked_delete<ledger::(anonymous namespace)::collector_wrapper> (checked_delete.hpp:36)
==226638== by 0x58DFAF1: checked_delete<ledger::(anonymous namespace)::collector_wrapper> (checked_delete.hpp:31)
==226638== by 0x58DFAF1: boost::detail::sp_counted_impl_p<ledger::(anonymous namespace)::collector_wrapper>::dispose() (sp_counted_impl.hpp:89)
==226638== by 0x58DC50C: UnknownInlinedFun (sp_counted_base_gcc_atomic.hpp:120)
==226638== by 0x58DC50C: UnknownInlinedFun (sp_counted_base_gcc_atomic.hpp:116)
==226638== by 0x58DC50C: ~shared_count (shared_count.hpp:432)
==226638== by 0x58DC50C: ~shared_ptr (shared_ptr.hpp:335)
==226638== by 0x58DC50C: boost::python::objects::pointer_holder<boost::shared_ptr<ledger::(anonymous namespace)::collector_wrapper>, ledger::(anonymous namespace)::collector_wrapper>::~pointer_holder() (pointer_holder.hpp:51)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x58E180C: UnknownInlinedFun (object.h:500)
==226638== by 0x58E180C: ~object_base (object_core.hpp:423)
==226638== by 0x58E180C: ~object (object_core.hpp:238)
==226638== by 0x58E180C: ~iterator_range (iterator.hpp:41)
==226638== by 0x58E180C: boost::python::objects::value_holder<boost::python::objects::iterator_range<boost::python::return_internal_reference<1ul, boost::python::default_call_policies>, __gnu_cxx::__normal_iterator<ledger::post_t**, std::vector<ledger::post_t*, std::allocator<ledger::post_t*> > > > >::~value_holder() (value_holder.hpp:39)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:500)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:567)
==226638== by 0x5EF54A4: life_support_call (life_support.cpp:30)
==226638== by 0x28401A: _PyObject_MakeTpCall (call.c:215)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:112)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:184)
==226638== by 0x2A5D82: handle_callback.lto_priv.0 (weakrefobject.c:952)
==226638== Address 0x4ebde48 is 456 bytes inside a block of size 552 free'd
==226638== at 0x484671B: operator delete(void*) (vg_replace_malloc.c:923)
==226638== by 0x57FDF4B: ~post_t (post.h:106)
==226638== by 0x57FDF4B: checked_delete<ledger::post_t> (checked_delete.hpp:36)
==226638== by 0x57FDF4B: ledger::xact_base_t::~xact_base_t() (xact.cc:62)
==226638== by 0x57EB3FE: ~xact_t (xact.h:113)
==226638== by 0x57EB3FE: ~xact_t (xact.h:113)
==226638== by 0x57EB3FE: checked_delete<ledger::xact_t> (checked_delete.hpp:36)
==226638== by 0x57EB3FE: ledger::journal_t::~journal_t() (journal.cc:74)
==226638== by 0x57BA7C1: operator() (unique_ptr.h:95)
==226638== by 0x57BA7C1: ~unique_ptr (unique_ptr.h:396)
==226638== by 0x57BA7C1: ledger::session_t::~session_t() (session.h:80)
==226638== by 0x58FC52B: boost::python::objects::value_holder<ledger::session_t>::~value_holder() (value_holder.hpp:39)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:500)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:567)
==226638== by 0x5EF54A4: life_support_call (life_support.cpp:30)
==226638== by 0x28401A: _PyObject_MakeTpCall (call.c:215)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:112)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:184)
==226638== by 0x2A5D82: handle_callback.lto_priv.0 (weakrefobject.c:952)
==226638== by 0x2A25E0: PyObject_ClearWeakRefs (weakrefobject.c:998)
==226638== by 0x5EEDA75: instance_dealloc (class.cpp:344)
==226638== Block was alloc'd at
==226638== at 0x4843F2F: operator new(unsigned long) (vg_replace_malloc.c:422)
==226638== by 0x57D5D89: ledger::(anonymous namespace)::instance_t::parse_post(char*, long, ledger::account_t*, ledger::xact_t*, bool) (textual.cc:1403)
==226638== by 0x57DF209: parse_xact (textual.cc:1941)
==226638== by 0x57DF209: xact_directive (textual.cc:707)
==226638== by 0x57DF209: ledger::(anonymous namespace)::instance_t::read_next_directive(bool&) (textual.cc:381)
==226638== by 0x57E02DA: ledger::(anonymous namespace)::instance_t::parse() (textual.cc:252)
==226638== by 0x57E06EB: ledger::journal_t::read_textual(ledger::parse_context_stack_t&) (textual.cc:2004)
==226638== by 0x57EA3FA: ledger::journal_t::read(ledger::parse_context_stack_t&) (journal.cc:472)
==226638== by 0x57B3C17: ledger::session_t::read_journal_from_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (session.cc:233)
==226638== by 0x58FBEB9: invoke<boost::python::to_python_indirect<ledger::journal_t*, boost::python::detail::make_reference_holder>, ledger::journal_t* (ledger::session_t::*)(const std::__cxx11::basic_string<char>&), boost::python::arg_from_python<ledger::session_t&>, boost::python::arg_from_python<const std::__cxx11::basic_string<char>&> > (invoke.hpp:86)
==226638== by 0x58FBEB9: operator() (caller.hpp:233)
==226638== by 0x58FBEB9: boost::python::objects::caller_py_function_impl<boost::python::detail::caller<ledger::journal_t* (ledger::session_t::*)(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&), boost::python::return_internal_reference<1ul, boost::python::default_call_policies>, boost::mpl::vector3<ledger::journal_t*, ledger::session_t&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&> > >::operator()(_object*, _object*) (py_function.hpp:38)
==226638== by 0x5EF145C: operator() (py_function.hpp:147)
==226638== by 0x5EF145C: boost::python::objects::function::call(_object*, _object*) const (function.cpp:221)
==226638== by 0x5EF1627: operator() (function.cpp:581)
==226638== by 0x5EF1627: boost::detail::function::void_function_ref_invoker0<boost::python::objects::(anonymous namespace)::bind_return, void>::invoke(boost::detail::function::function_buffer&) (function_template.hpp:193)
==226638== by 0x5EF659A: operator() (function_template.hpp:763)
==226638== by 0x5EF659A: boost::python::detail::exception_handler::operator()(boost::function0<void> const&) const (errors.cpp:74)
==226638== by 0x58E4692: operator() (translate_exception.hpp:46)
==226638== by 0x58E4692: operator()<bool, boost::python::detail::translate_exception<ledger::error_count, void (*)(const ledger::error_count&)>, boost::_bi::rrlist2<const boost::python::detail::exception_handler&, const boost::function0<void>&> > (bind.hpp:388)
==226638== by 0x58E4692: operator()<const boost::python::detail::exception_handler&, const boost::function0<void>&> (bind.hpp:1318)
==226638== by 0x58E4692: boost::detail::function::function_obj_invoker2<boost::_bi::bind_t<bool, boost::python::detail::translate_exception<ledger::error_count, void (*)(ledger::error_count const&)>, boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<void (*)(ledger::error_count const&)> > >, bool, boost::python::detail::exception_handler const&, boost::function0<void> const&>::invoke(boost::detail::function::function_buffer&, boost::python::detail::exception_handler const&, boost::function0<void> const&) (function_template.hpp:137)
==226638==
==226638== Invalid read of size 8
==226638== at 0x57F90A0: operator++ (stl_list.h:289)
==226638== by 0x57F90A0: next<std::__cxx11::list<ledger::post_t*>, mpl_::bool_<false> > (foreach.hpp:767)
==226638== by 0x57F90A0: ledger::xact_base_t::clear_xdata() (xact.cc:97)
==226638== by 0x57E8064: ledger::journal_t::clear_xdata() (journal.cc:518)
==226638== by 0x58DFAF1: ~collector_wrapper (py_journal.cc:164)
==226638== by 0x58DFAF1: checked_delete<ledger::(anonymous namespace)::collector_wrapper> (checked_delete.hpp:36)
==226638== by 0x58DFAF1: checked_delete<ledger::(anonymous namespace)::collector_wrapper> (checked_delete.hpp:31)
==226638== by 0x58DFAF1: boost::detail::sp_counted_impl_p<ledger::(anonymous namespace)::collector_wrapper>::dispose() (sp_counted_impl.hpp:89)
==226638== by 0x58DC50C: UnknownInlinedFun (sp_counted_base_gcc_atomic.hpp:120)
==226638== by 0x58DC50C: UnknownInlinedFun (sp_counted_base_gcc_atomic.hpp:116)
==226638== by 0x58DC50C: ~shared_count (shared_count.hpp:432)
==226638== by 0x58DC50C: ~shared_ptr (shared_ptr.hpp:335)
==226638== by 0x58DC50C: boost::python::objects::pointer_holder<boost::shared_ptr<ledger::(anonymous namespace)::collector_wrapper>, ledger::(anonymous namespace)::collector_wrapper>::~pointer_holder() (pointer_holder.hpp:51)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x58E180C: UnknownInlinedFun (object.h:500)
==226638== by 0x58E180C: ~object_base (object_core.hpp:423)
==226638== by 0x58E180C: ~object (object_core.hpp:238)
==226638== by 0x58E180C: ~iterator_range (iterator.hpp:41)
==226638== by 0x58E180C: boost::python::objects::value_holder<boost::python::objects::iterator_range<boost::python::return_internal_reference<1ul, boost::python::default_call_policies>, __gnu_cxx::__normal_iterator<ledger::post_t**, std::vector<ledger::post_t*, std::allocator<ledger::post_t*> > > > >::~value_holder() (value_holder.hpp:39)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:500)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:567)
==226638== by 0x5EF54A4: life_support_call (life_support.cpp:30)
==226638== by 0x28401A: _PyObject_MakeTpCall (call.c:215)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:112)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:184)
==226638== by 0x2A5D82: handle_callback.lto_priv.0 (weakrefobject.c:952)
==226638== Address 0x4ebe810 is 0 bytes inside a block of size 24 free'd
==226638== at 0x484671B: operator delete(void*) (vg_replace_malloc.c:923)
==226638== by 0x57FE00A: deallocate (new_allocator.h:158)
==226638== by 0x57FE00A: deallocate (alloc_traits.h:496)
==226638== by 0x57FE00A: _M_put_node (stl_list.h:522)
==226638== by 0x57FE00A: _M_clear (list.tcc:81)
==226638== by 0x57FE00A: ~_List_base (stl_list.h:575)
==226638== by 0x57FE00A: ~list (stl_list.h:903)
==226638== by 0x57FE00A: ledger::xact_base_t::~xact_base_t() (xact.cc:65)
==226638== by 0x57EB3FE: ~xact_t (xact.h:113)
==226638== by 0x57EB3FE: ~xact_t (xact.h:113)
==226638== by 0x57EB3FE: checked_delete<ledger::xact_t> (checked_delete.hpp:36)
==226638== by 0x57EB3FE: ledger::journal_t::~journal_t() (journal.cc:74)
==226638== by 0x57BA7C1: operator() (unique_ptr.h:95)
==226638== by 0x57BA7C1: ~unique_ptr (unique_ptr.h:396)
==226638== by 0x57BA7C1: ledger::session_t::~session_t() (session.h:80)
==226638== by 0x58FC52B: boost::python::objects::value_holder<ledger::session_t>::~value_holder() (value_holder.hpp:39)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:500)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:567)
==226638== by 0x5EF54A4: life_support_call (life_support.cpp:30)
==226638== by 0x28401A: _PyObject_MakeTpCall (call.c:215)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:112)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:184)
==226638== by 0x2A5D82: handle_callback.lto_priv.0 (weakrefobject.c:952)
==226638== by 0x2A25E0: PyObject_ClearWeakRefs (weakrefobject.c:998)
==226638== by 0x5EEDA75: instance_dealloc (class.cpp:344)
==226638== Block was alloc'd at
==226638== at 0x4843F2F: operator new(unsigned long) (vg_replace_malloc.c:422)
==226638== by 0x57F7D67: allocate (new_allocator.h:137)
==226638== by 0x57F7D67: allocate (alloc_traits.h:464)
==226638== by 0x57F7D67: _M_get_node (stl_list.h:518)
==226638== by 0x57F7D67: _M_create_node<ledger::post_t* const&> (stl_list.h:710)
==226638== by 0x57F7D67: _M_insert<ledger::post_t* const&> (stl_list.h:2005)
==226638== by 0x57F7D67: push_back (stl_list.h:1306)
==226638== by 0x57F7D67: ledger::xact_base_t::add_post(ledger::post_t*) (xact.cc:76)
==226638== by 0x57DF224: parse_xact (textual.cc:1943)
==226638== by 0x57DF224: xact_directive (textual.cc:707)
==226638== by 0x57DF224: ledger::(anonymous namespace)::instance_t::read_next_directive(bool&) (textual.cc:381)
==226638== by 0x57E02DA: ledger::(anonymous namespace)::instance_t::parse() (textual.cc:252)
==226638== by 0x57E06EB: ledger::journal_t::read_textual(ledger::parse_context_stack_t&) (textual.cc:2004)
==226638== by 0x57EA3FA: ledger::journal_t::read(ledger::parse_context_stack_t&) (journal.cc:472)
==226638== by 0x57B3C17: ledger::session_t::read_journal_from_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (session.cc:233)
==226638== by 0x58FBEB9: invoke<boost::python::to_python_indirect<ledger::journal_t*, boost::python::detail::make_reference_holder>, ledger::journal_t* (ledger::session_t::*)(const std::__cxx11::basic_string<char>&), boost::python::arg_from_python<ledger::session_t&>, boost::python::arg_from_python<const std::__cxx11::basic_string<char>&> > (invoke.hpp:86)
==226638== by 0x58FBEB9: operator() (caller.hpp:233)
==226638== by 0x58FBEB9: boost::python::objects::caller_py_function_impl<boost::python::detail::caller<ledger::journal_t* (ledger::session_t::*)(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&), boost::python::return_internal_reference<1ul, boost::python::default_call_policies>, boost::mpl::vector3<ledger::journal_t*, ledger::session_t&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&> > >::operator()(_object*, _object*) (py_function.hpp:38)
==226638== by 0x5EF145C: operator() (py_function.hpp:147)
==226638== by 0x5EF145C: boost::python::objects::function::call(_object*, _object*) const (function.cpp:221)
==226638== by 0x5EF1627: operator() (function.cpp:581)
==226638== by 0x5EF1627: boost::detail::function::void_function_ref_invoker0<boost::python::objects::(anonymous namespace)::bind_return, void>::invoke(boost::detail::function::function_buffer&) (function_template.hpp:193)
==226638== by 0x5EF659A: operator() (function_template.hpp:763)
==226638== by 0x5EF659A: boost::python::detail::exception_handler::operator()(boost::function0<void> const&) const (errors.cpp:74)
==226638== by 0x58E4692: operator() (translate_exception.hpp:46)
==226638== by 0x58E4692: operator()<bool, boost::python::detail::translate_exception<ledger::error_count, void (*)(const ledger::error_count&)>, boost::_bi::rrlist2<const boost::python::detail::exception_handler&, const boost::function0<void>&> > (bind.hpp:388)
==226638== by 0x58E4692: operator()<const boost::python::detail::exception_handler&, const boost::function0<void>&> (bind.hpp:1318)
==226638== by 0x58E4692: boost::detail::function::function_obj_invoker2<boost::_bi::bind_t<bool, boost::python::detail::translate_exception<ledger::error_count, void (*)(ledger::error_count const&)>, boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<void (*)(ledger::error_count const&)> > >, bool, boost::python::detail::exception_handler const&, boost::function0<void> const&>::invoke(boost::detail::function::function_buffer&, boost::python::detail::exception_handler const&, boost::function0<void> const&) (function_template.hpp:137)
==226638==
==226638== Invalid read of size 8
==226638== at 0x57E8065: operator++ (stl_list.h:289)
==226638== by 0x57E8065: next<std::__cxx11::list<ledger::xact_t*>, mpl_::bool_<false> > (foreach.hpp:767)
==226638== by 0x57E8065: ledger::journal_t::clear_xdata() (journal.cc:516)
==226638== by 0x58DFAF1: ~collector_wrapper (py_journal.cc:164)
==226638== by 0x58DFAF1: checked_delete<ledger::(anonymous namespace)::collector_wrapper> (checked_delete.hpp:36)
==226638== by 0x58DFAF1: checked_delete<ledger::(anonymous namespace)::collector_wrapper> (checked_delete.hpp:31)
==226638== by 0x58DFAF1: boost::detail::sp_counted_impl_p<ledger::(anonymous namespace)::collector_wrapper>::dispose() (sp_counted_impl.hpp:89)
==226638== by 0x58DC50C: UnknownInlinedFun (sp_counted_base_gcc_atomic.hpp:120)
==226638== by 0x58DC50C: UnknownInlinedFun (sp_counted_base_gcc_atomic.hpp:116)
==226638== by 0x58DC50C: ~shared_count (shared_count.hpp:432)
==226638== by 0x58DC50C: ~shared_ptr (shared_ptr.hpp:335)
==226638== by 0x58DC50C: boost::python::objects::pointer_holder<boost::shared_ptr<ledger::(anonymous namespace)::collector_wrapper>, ledger::(anonymous namespace)::collector_wrapper>::~pointer_holder() (pointer_holder.hpp:51)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x58E180C: UnknownInlinedFun (object.h:500)
==226638== by 0x58E180C: ~object_base (object_core.hpp:423)
==226638== by 0x58E180C: ~object (object_core.hpp:238)
==226638== by 0x58E180C: ~iterator_range (iterator.hpp:41)
==226638== by 0x58E180C: boost::python::objects::value_holder<boost::python::objects::iterator_range<boost::python::return_internal_reference<1ul, boost::python::default_call_policies>, __gnu_cxx::__normal_iterator<ledger::post_t**, std::vector<ledger::post_t*, std::allocator<ledger::post_t*> > > > >::~value_holder() (value_holder.hpp:39)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:500)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:567)
==226638== by 0x5EF54A4: life_support_call (life_support.cpp:30)
==226638== by 0x28401A: _PyObject_MakeTpCall (call.c:215)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:112)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:184)
==226638== by 0x2A5D82: handle_callback.lto_priv.0 (weakrefobject.c:952)
==226638== by 0x2A25E0: PyObject_ClearWeakRefs (weakrefobject.c:998)
==226638== Address 0x4ebf2e0 is 0 bytes inside a block of size 24 free'd
==226638== at 0x484671B: operator delete(void*) (vg_replace_malloc.c:923)
==226638== by 0x57EB90A: deallocate (new_allocator.h:158)
==226638== by 0x57EB90A: deallocate (alloc_traits.h:496)
==226638== by 0x57EB90A: _M_put_node (stl_list.h:522)
==226638== by 0x57EB90A: _M_clear (list.tcc:81)
==226638== by 0x57EB90A: ~_List_base (stl_list.h:575)
==226638== by 0x57EB90A: ~list (stl_list.h:903)
==226638== by 0x57EB90A: ledger::journal_t::~journal_t() (journal.cc:83)
==226638== by 0x57BA7C1: operator() (unique_ptr.h:95)
==226638== by 0x57BA7C1: ~unique_ptr (unique_ptr.h:396)
==226638== by 0x57BA7C1: ledger::session_t::~session_t() (session.h:80)
==226638== by 0x58FC52B: boost::python::objects::value_holder<ledger::session_t>::~value_holder() (value_holder.hpp:39)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:500)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:567)
==226638== by 0x5EF54A4: life_support_call (life_support.cpp:30)
==226638== by 0x28401A: _PyObject_MakeTpCall (call.c:215)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:112)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:184)
==226638== by 0x2A5D82: handle_callback.lto_priv.0 (weakrefobject.c:952)
==226638== by 0x2A25E0: PyObject_ClearWeakRefs (weakrefobject.c:998)
==226638== by 0x5EEDA75: instance_dealloc (class.cpp:344)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== Block was alloc'd at
==226638== at 0x4843F2F: operator new(unsigned long) (vg_replace_malloc.c:422)
==226638== by 0x57E9905: allocate (new_allocator.h:137)
==226638== by 0x57E9905: allocate (alloc_traits.h:464)
==226638== by 0x57E9905: _M_get_node (stl_list.h:518)
==226638== by 0x57E9905: _M_create_node<ledger::xact_t* const&> (stl_list.h:710)
==226638== by 0x57E9905: _M_insert<ledger::xact_t* const&> (stl_list.h:2005)
==226638== by 0x57E9905: push_back (stl_list.h:1306)
==226638== by 0x57E9905: ledger::journal_t::add_xact(ledger::xact_t*) (journal.cc:424)
==226638== by 0x57DFC15: xact_directive (textual.cc:710)
==226638== by 0x57DFC15: ledger::(anonymous namespace)::instance_t::read_next_directive(bool&) (textual.cc:381)
==226638== by 0x57E02DA: ledger::(anonymous namespace)::instance_t::parse() (textual.cc:252)
==226638== by 0x57E06EB: ledger::journal_t::read_textual(ledger::parse_context_stack_t&) (textual.cc:2004)
==226638== by 0x57EA3FA: ledger::journal_t::read(ledger::parse_context_stack_t&) (journal.cc:472)
==226638== by 0x57B3C17: ledger::session_t::read_journal_from_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (session.cc:233)
==226638== by 0x58FBEB9: invoke<boost::python::to_python_indirect<ledger::journal_t*, boost::python::detail::make_reference_holder>, ledger::journal_t* (ledger::session_t::*)(const std::__cxx11::basic_string<char>&), boost::python::arg_from_python<ledger::session_t&>, boost::python::arg_from_python<const std::__cxx11::basic_string<char>&> > (invoke.hpp:86)
==226638== by 0x58FBEB9: operator() (caller.hpp:233)
==226638== by 0x58FBEB9: boost::python::objects::caller_py_function_impl<boost::python::detail::caller<ledger::journal_t* (ledger::session_t::*)(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&), boost::python::return_internal_reference<1ul, boost::python::default_call_policies>, boost::mpl::vector3<ledger::journal_t*, ledger::session_t&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&> > >::operator()(_object*, _object*) (py_function.hpp:38)
==226638== by 0x5EF145C: operator() (py_function.hpp:147)
==226638== by 0x5EF145C: boost::python::objects::function::call(_object*, _object*) const (function.cpp:221)
==226638== by 0x5EF1627: operator() (function.cpp:581)
==226638== by 0x5EF1627: boost::detail::function::void_function_ref_invoker0<boost::python::objects::(anonymous namespace)::bind_return, void>::invoke(boost::detail::function::function_buffer&) (function_template.hpp:193)
==226638== by 0x5EF659A: operator() (function_template.hpp:763)
==226638== by 0x5EF659A: boost::python::detail::exception_handler::operator()(boost::function0<void> const&) const (errors.cpp:74)
==226638== by 0x58E4692: operator() (translate_exception.hpp:46)
==226638== by 0x58E4692: operator()<bool, boost::python::detail::translate_exception<ledger::error_count, void (*)(const ledger::error_count&)>, boost::_bi::rrlist2<const boost::python::detail::exception_handler&, const boost::function0<void>&> > (bind.hpp:388)
==226638== by 0x58E4692: operator()<const boost::python::detail::exception_handler&, const boost::function0<void>&> (bind.hpp:1318)
==226638== by 0x58E4692: boost::detail::function::function_obj_invoker2<boost::_bi::bind_t<bool, boost::python::detail::translate_exception<ledger::error_count, void (*)(ledger::error_count const&)>, boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<void (*)(ledger::error_count const&)> > >, bool, boost::python::detail::exception_handler const&, boost::function0<void> const&>::invoke(boost::detail::function::function_buffer&, boost::python::detail::exception_handler const&, boost::function0<void> const&) (function_template.hpp:137)
==226638==
==226638== Invalid read of size 8
==226638== at 0x57E8071: ledger::journal_t::clear_xdata() (journal.cc:516)
==226638== by 0x58DFAF1: ~collector_wrapper (py_journal.cc:164)
==226638== by 0x58DFAF1: checked_delete<ledger::(anonymous namespace)::collector_wrapper> (checked_delete.hpp:36)
==226638== by 0x58DFAF1: checked_delete<ledger::(anonymous namespace)::collector_wrapper> (checked_delete.hpp:31)
==226638== by 0x58DFAF1: boost::detail::sp_counted_impl_p<ledger::(anonymous namespace)::collector_wrapper>::dispose() (sp_counted_impl.hpp:89)
==226638== by 0x58DC50C: UnknownInlinedFun (sp_counted_base_gcc_atomic.hpp:120)
==226638== by 0x58DC50C: UnknownInlinedFun (sp_counted_base_gcc_atomic.hpp:116)
==226638== by 0x58DC50C: ~shared_count (shared_count.hpp:432)
==226638== by 0x58DC50C: ~shared_ptr (shared_ptr.hpp:335)
==226638== by 0x58DC50C: boost::python::objects::pointer_holder<boost::shared_ptr<ledger::(anonymous namespace)::collector_wrapper>, ledger::(anonymous namespace)::collector_wrapper>::~pointer_holder() (pointer_holder.hpp:51)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x58E180C: UnknownInlinedFun (object.h:500)
==226638== by 0x58E180C: ~object_base (object_core.hpp:423)
==226638== by 0x58E180C: ~object (object_core.hpp:238)
==226638== by 0x58E180C: ~iterator_range (iterator.hpp:41)
==226638== by 0x58E180C: boost::python::objects::value_holder<boost::python::objects::iterator_range<boost::python::return_internal_reference<1ul, boost::python::default_call_policies>, __gnu_cxx::__normal_iterator<ledger::post_t**, std::vector<ledger::post_t*, std::allocator<ledger::post_t*> > > > >::~value_holder() (value_holder.hpp:39)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:500)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:567)
==226638== by 0x5EF54A4: life_support_call (life_support.cpp:30)
==226638== by 0x28401A: _PyObject_MakeTpCall (call.c:215)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:112)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:184)
==226638== by 0x2A5D82: handle_callback.lto_priv.0 (weakrefobject.c:952)
==226638== by 0x2A25E0: PyObject_ClearWeakRefs (weakrefobject.c:998)
==226638== Address 0x4eba858 is 40 bytes inside a block of size 544 free'd
==226638== at 0x484671B: operator delete(void*) (vg_replace_malloc.c:923)
==226638== by 0x57BA7C9: operator() (unique_ptr.h:95)
==226638== by 0x57BA7C9: ~unique_ptr (unique_ptr.h:396)
==226638== by 0x57BA7C9: ledger::session_t::~session_t() (session.h:80)
==226638== by 0x58FC52B: boost::python::objects::value_holder<ledger::session_t>::~value_holder() (value_holder.hpp:39)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:500)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:567)
==226638== by 0x5EF54A4: life_support_call (life_support.cpp:30)
==226638== by 0x28401A: _PyObject_MakeTpCall (call.c:215)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:112)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:184)
==226638== by 0x2A5D82: handle_callback.lto_priv.0 (weakrefobject.c:952)
==226638== by 0x2A25E0: PyObject_ClearWeakRefs (weakrefobject.c:998)
==226638== by 0x5EEDA75: instance_dealloc (class.cpp:344)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x26D9C8: UnknownInlinedFun (object.c:2300)
==226638== by 0x26D9C8: UnknownInlinedFun (object.h:500)
==226638== by 0x26D9C8: UnknownInlinedFun (object.h:567)
==226638== by 0x26D9C8: free_keys_object.lto_priv.0 (dictobject.c:628)
==226638== Block was alloc'd at
==226638== at 0x4843F2F: operator new(unsigned long) (vg_replace_malloc.c:422)
==226638== by 0x57B518B: ledger::session_t::session_t() (session.cc:62)
==226638== by 0x58FB017: value_holder (value_holder.hpp:131)
==226638== by 0x58FB017: boost::python::objects::make_holder<0>::apply<boost::python::objects::value_holder<ledger::session_t>, boost::mpl::vector0<mpl_::na> >::execute(_object*) (make_holder.hpp:94)
==226638== by 0x588BA6D: UnknownInlinedFun (invoke.hpp:79)
==226638== by 0x588BA6D: operator() (caller.hpp:233)
==226638== by 0x588BA6D: boost::python::objects::caller_py_function_impl<boost::python::detail::caller<void (*)(_object*), boost::python::default_call_policies, boost::mpl::vector2<void, _object*> > >::operator()(_object*, _object*) (py_function.hpp:38)
==226638== by 0x5EF145C: operator() (py_function.hpp:147)
==226638== by 0x5EF145C: boost::python::objects::function::call(_object*, _object*) const (function.cpp:221)
==226638== by 0x5EF1627: operator() (function.cpp:581)
==226638== by 0x5EF1627: boost::detail::function::void_function_ref_invoker0<boost::python::objects::(anonymous namespace)::bind_return, void>::invoke(boost::detail::function::function_buffer&) (function_template.hpp:193)
==226638== by 0x5EF659A: operator() (function_template.hpp:763)
==226638== by 0x5EF659A: boost::python::detail::exception_handler::operator()(boost::function0<void> const&) const (errors.cpp:74)
==226638== by 0x58E4692: operator() (translate_exception.hpp:46)
==226638== by 0x58E4692: operator()<bool, boost::python::detail::translate_exception<ledger::error_count, void (*)(const ledger::error_count&)>, boost::_bi::rrlist2<const boost::python::detail::exception_handler&, const boost::function0<void>&> > (bind.hpp:388)
==226638== by 0x58E4692: operator()<const boost::python::detail::exception_handler&, const boost::function0<void>&> (bind.hpp:1318)
==226638== by 0x58E4692: boost::detail::function::function_obj_invoker2<boost::_bi::bind_t<bool, boost::python::detail::translate_exception<ledger::error_count, void (*)(ledger::error_count const&)>, boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<void (*)(ledger::error_count const&)> > >, bool, boost::python::detail::exception_handler const&, boost::function0<void> const&>::invoke(boost::detail::function::function_buffer&, boost::python::detail::exception_handler const&, boost::function0<void> const&) (function_template.hpp:137)
==226638== by 0x58E46E2: operator() (translate_exception.hpp:46)
==226638== by 0x58E46E2: operator()<bool, boost::python::detail::translate_exception<ledger::parse_error, void (*)(const ledger::parse_error&)>, boost::_bi::rrlist2<const boost::python::detail::exception_handler&, const boost::function0<void>&> > (bind.hpp:388)
==226638== by 0x58E46E2: operator()<const boost::python::detail::exception_handler&, const boost::function0<void>&> (bind.hpp:1318)
==226638== by 0x58E46E2: boost::detail::function::function_obj_invoker2<boost::_bi::bind_t<bool, boost::python::detail::translate_exception<ledger::parse_error, void (*)(ledger::parse_error const&)>, boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<void (*)(ledger::parse_error const&)> > >, bool, boost::python::detail::exception_handler const&, boost::function0<void> const&>::invoke(boost::detail::function::function_buffer&, boost::python::detail::exception_handler const&, boost::function0<void> const&) (function_template.hpp:137)
==226638== by 0x58AF372: operator() (translate_exception.hpp:46)
==226638== by 0x58AF372: operator()<bool, boost::python::detail::translate_exception<ledger::balance_error, void (*)(const ledger::balance_error&)>, boost::_bi::rrlist2<const boost::python::detail::exception_handler&, const boost::function0<void>&> > (bind.hpp:388)
==226638== by 0x58AF372: operator()<const boost::python::detail::exception_handler&, const boost::function0<void>&> (bind.hpp:1318)
==226638== by 0x58AF372: boost::detail::function::function_obj_invoker2<boost::_bi::bind_t<bool, boost::python::detail::translate_exception<ledger::balance_error, void (*)(ledger::balance_error const&)>, boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<void (*)(ledger::balance_error const&)> > >, bool, boost::python::detail::exception_handler const&, boost::function0<void> const&>::invoke(boost::detail::function::function_buffer&, boost::python::detail::exception_handler const&, boost::function0<void> const&) (function_template.hpp:137)
==226638== by 0x590D412: operator() (translate_exception.hpp:46)
==226638== by 0x590D412: operator()<bool, boost::python::detail::translate_exception<ledger::value_error, void (*)(const ledger::value_error&)>, boost::_bi::rrlist2<const boost::python::detail::exception_handler&, const boost::function0<void>&> > (bind.hpp:388)
==226638== by 0x590D412: operator()<const boost::python::detail::exception_handler&, const boost::function0<void>&> (bind.hpp:1318)
==226638== by 0x590D412: boost::detail::function::function_obj_invoker2<boost::_bi::bind_t<bool, boost::python::detail::translate_exception<ledger::value_error, void (*)(ledger::value_error const&)>, boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<void (*)(ledger::value_error const&)> > >, bool, boost::python::detail::exception_handler const&, boost::function0<void> const&>::invoke(boost::detail::function::function_buffer&, boost::python::detail::exception_handler const&, boost::function0<void> const&) (function_template.hpp:137)
==226638== by 0x58A4492: operator() (translate_exception.hpp:46)
==226638== by 0x58A4492: operator()<bool, boost::python::detail::translate_exception<ledger::amount_error, void (*)(const ledger::amount_error&)>, boost::_bi::rrlist2<const boost::python::detail::exception_handler&, const boost::function0<void>&> > (bind.hpp:388)
==226638== by 0x58A4492: operator()<const boost::python::detail::exception_handler&, const boost::function0<void>&> (bind.hpp:1318)
==226638== by 0x58A4492: boost::detail::function::function_obj_invoker2<boost::_bi::bind_t<bool, boost::python::detail::translate_exception<ledger::amount_error, void (*)(ledger::amount_error const&)>, boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<void (*)(ledger::amount_error const&)> > >, bool, boost::python::detail::exception_handler const&, boost::function0<void> const&>::invoke(boost::detail::function::function_buffer&, boost::python::detail::exception_handler const&, boost::function0<void> const&) (function_template.hpp:137)
==226638==
==226638== Invalid read of size 8
==226638== at 0x57E8012: begin (stl_list.h:1023)
==226638== by 0x57E8012: range_begin<std::__cxx11::list<ledger::period_xact_t*> > (begin.hpp:45)
==226638== by 0x57E8012: begin<std::__cxx11::list<ledger::period_xact_t*> > (begin.hpp:103)
==226638== by 0x57E8012: begin<std::__cxx11::list<ledger::period_xact_t*>, mpl_::bool_<false> > (foreach.hpp:680)
==226638== by 0x57E8012: ledger::journal_t::clear_xdata() (journal.cc:524)
==226638== by 0x58DFAF1: ~collector_wrapper (py_journal.cc:164)
==226638== by 0x58DFAF1: checked_delete<ledger::(anonymous namespace)::collector_wrapper> (checked_delete.hpp:36)
==226638== by 0x58DFAF1: checked_delete<ledger::(anonymous namespace)::collector_wrapper> (checked_delete.hpp:31)
==226638== by 0x58DFAF1: boost::detail::sp_counted_impl_p<ledger::(anonymous namespace)::collector_wrapper>::dispose() (sp_counted_impl.hpp:89)
==226638== by 0x58DC50C: UnknownInlinedFun (sp_counted_base_gcc_atomic.hpp:120)
==226638== by 0x58DC50C: UnknownInlinedFun (sp_counted_base_gcc_atomic.hpp:116)
==226638== by 0x58DC50C: ~shared_count (shared_count.hpp:432)
==226638== by 0x58DC50C: ~shared_ptr (shared_ptr.hpp:335)
==226638== by 0x58DC50C: boost::python::objects::pointer_holder<boost::shared_ptr<ledger::(anonymous namespace)::collector_wrapper>, ledger::(anonymous namespace)::collector_wrapper>::~pointer_holder() (pointer_holder.hpp:51)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x58E180C: UnknownInlinedFun (object.h:500)
==226638== by 0x58E180C: ~object_base (object_core.hpp:423)
==226638== by 0x58E180C: ~object (object_core.hpp:238)
==226638== by 0x58E180C: ~iterator_range (iterator.hpp:41)
==226638== by 0x58E180C: boost::python::objects::value_holder<boost::python::objects::iterator_range<boost::python::return_internal_reference<1ul, boost::python::default_call_policies>, __gnu_cxx::__normal_iterator<ledger::post_t**, std::vector<ledger::post_t*, std::allocator<ledger::post_t*> > > > >::~value_holder() (value_holder.hpp:39)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:500)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:567)
==226638== by 0x5EF54A4: life_support_call (life_support.cpp:30)
==226638== by 0x28401A: _PyObject_MakeTpCall (call.c:215)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:112)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:184)
==226638== by 0x2A5D82: handle_callback.lto_priv.0 (weakrefobject.c:952)
==226638== by 0x2A25E0: PyObject_ClearWeakRefs (weakrefobject.c:998)
==226638== Address 0x4eba870 is 64 bytes inside a block of size 544 free'd
==226638== at 0x484671B: operator delete(void*) (vg_replace_malloc.c:923)
==226638== by 0x57BA7C9: operator() (unique_ptr.h:95)
==226638== by 0x57BA7C9: ~unique_ptr (unique_ptr.h:396)
==226638== by 0x57BA7C9: ledger::session_t::~session_t() (session.h:80)
==226638== by 0x58FC52B: boost::python::objects::value_holder<ledger::session_t>::~value_holder() (value_holder.hpp:39)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:500)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:567)
==226638== by 0x5EF54A4: life_support_call (life_support.cpp:30)
==226638== by 0x28401A: _PyObject_MakeTpCall (call.c:215)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:112)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:184)
==226638== by 0x2A5D82: handle_callback.lto_priv.0 (weakrefobject.c:952)
==226638== by 0x2A25E0: PyObject_ClearWeakRefs (weakrefobject.c:998)
==226638== by 0x5EEDA75: instance_dealloc (class.cpp:344)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x26D9C8: UnknownInlinedFun (object.c:2300)
==226638== by 0x26D9C8: UnknownInlinedFun (object.h:500)
==226638== by 0x26D9C8: UnknownInlinedFun (object.h:567)
==226638== by 0x26D9C8: free_keys_object.lto_priv.0 (dictobject.c:628)
==226638== Block was alloc'd at
==226638== at 0x4843F2F: operator new(unsigned long) (vg_replace_malloc.c:422)
==226638== by 0x57B518B: ledger::session_t::session_t() (session.cc:62)
==226638== by 0x58FB017: value_holder (value_holder.hpp:131)
==226638== by 0x58FB017: boost::python::objects::make_holder<0>::apply<boost::python::objects::value_holder<ledger::session_t>, boost::mpl::vector0<mpl_::na> >::execute(_object*) (make_holder.hpp:94)
==226638== by 0x588BA6D: UnknownInlinedFun (invoke.hpp:79)
==226638== by 0x588BA6D: operator() (caller.hpp:233)
==226638== by 0x588BA6D: boost::python::objects::caller_py_function_impl<boost::python::detail::caller<void (*)(_object*), boost::python::default_call_policies, boost::mpl::vector2<void, _object*> > >::operator()(_object*, _object*) (py_function.hpp:38)
==226638== by 0x5EF145C: operator() (py_function.hpp:147)
==226638== by 0x5EF145C: boost::python::objects::function::call(_object*, _object*) const (function.cpp:221)
==226638== by 0x5EF1627: operator() (function.cpp:581)
==226638== by 0x5EF1627: boost::detail::function::void_function_ref_invoker0<boost::python::objects::(anonymous namespace)::bind_return, void>::invoke(boost::detail::function::function_buffer&) (function_template.hpp:193)
==226638== by 0x5EF659A: operator() (function_template.hpp:763)
==226638== by 0x5EF659A: boost::python::detail::exception_handler::operator()(boost::function0<void> const&) const (errors.cpp:74)
==226638== by 0x58E4692: operator() (translate_exception.hpp:46)
==226638== by 0x58E4692: operator()<bool, boost::python::detail::translate_exception<ledger::error_count, void (*)(const ledger::error_count&)>, boost::_bi::rrlist2<const boost::python::detail::exception_handler&, const boost::function0<void>&> > (bind.hpp:388)
==226638== by 0x58E4692: operator()<const boost::python::detail::exception_handler&, const boost::function0<void>&> (bind.hpp:1318)
==226638== by 0x58E4692: boost::detail::function::function_obj_invoker2<boost::_bi::bind_t<bool, boost::python::detail::translate_exception<ledger::error_count, void (*)(ledger::error_count const&)>, boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<void (*)(ledger::error_count const&)> > >, bool, boost::python::detail::exception_handler const&, boost::function0<void> const&>::invoke(boost::detail::function::function_buffer&, boost::python::detail::exception_handler const&, boost::function0<void> const&) (function_template.hpp:137)
==226638== by 0x58E46E2: operator() (translate_exception.hpp:46)
==226638== by 0x58E46E2: operator()<bool, boost::python::detail::translate_exception<ledger::parse_error, void (*)(const ledger::parse_error&)>, boost::_bi::rrlist2<const boost::python::detail::exception_handler&, const boost::function0<void>&> > (bind.hpp:388)
==226638== by 0x58E46E2: operator()<const boost::python::detail::exception_handler&, const boost::function0<void>&> (bind.hpp:1318)
==226638== by 0x58E46E2: boost::detail::function::function_obj_invoker2<boost::_bi::bind_t<bool, boost::python::detail::translate_exception<ledger::parse_error, void (*)(ledger::parse_error const&)>, boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<void (*)(ledger::parse_error const&)> > >, bool, boost::python::detail::exception_handler const&, boost::function0<void> const&>::invoke(boost::detail::function::function_buffer&, boost::python::detail::exception_handler const&, boost::function0<void> const&) (function_template.hpp:137)
==226638== by 0x58AF372: operator() (translate_exception.hpp:46)
==226638== by 0x58AF372: operator()<bool, boost::python::detail::translate_exception<ledger::balance_error, void (*)(const ledger::balance_error&)>, boost::_bi::rrlist2<const boost::python::detail::exception_handler&, const boost::function0<void>&> > (bind.hpp:388)
==226638== by 0x58AF372: operator()<const boost::python::detail::exception_handler&, const boost::function0<void>&> (bind.hpp:1318)
==226638== by 0x58AF372: boost::detail::function::function_obj_invoker2<boost::_bi::bind_t<bool, boost::python::detail::translate_exception<ledger::balance_error, void (*)(ledger::balance_error const&)>, boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<void (*)(ledger::balance_error const&)> > >, bool, boost::python::detail::exception_handler const&, boost::function0<void> const&>::invoke(boost::detail::function::function_buffer&, boost::python::detail::exception_handler const&, boost::function0<void> const&) (function_template.hpp:137)
==226638== by 0x590D412: operator() (translate_exception.hpp:46)
==226638== by 0x590D412: operator()<bool, boost::python::detail::translate_exception<ledger::value_error, void (*)(const ledger::value_error&)>, boost::_bi::rrlist2<const boost::python::detail::exception_handler&, const boost::function0<void>&> > (bind.hpp:388)
==226638== by 0x590D412: operator()<const boost::python::detail::exception_handler&, const boost::function0<void>&> (bind.hpp:1318)
==226638== by 0x590D412: boost::detail::function::function_obj_invoker2<boost::_bi::bind_t<bool, boost::python::detail::translate_exception<ledger::value_error, void (*)(ledger::value_error const&)>, boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<void (*)(ledger::value_error const&)> > >, bool, boost::python::detail::exception_handler const&, boost::function0<void> const&>::invoke(boost::detail::function::function_buffer&, boost::python::detail::exception_handler const&, boost::function0<void> const&) (function_template.hpp:137)
==226638== by 0x58A4492: operator() (translate_exception.hpp:46)
==226638== by 0x58A4492: operator()<bool, boost::python::detail::translate_exception<ledger::amount_error, void (*)(const ledger::amount_error&)>, boost::_bi::rrlist2<const boost::python::detail::exception_handler&, const boost::function0<void>&> > (bind.hpp:388)
==226638== by 0x58A4492: operator()<const boost::python::detail::exception_handler&, const boost::function0<void>&> (bind.hpp:1318)
==226638== by 0x58A4492: boost::detail::function::function_obj_invoker2<boost::_bi::bind_t<bool, boost::python::detail::translate_exception<ledger::amount_error, void (*)(ledger::amount_error const&)>, boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<void (*)(ledger::amount_error const&)> > >, bool, boost::python::detail::exception_handler const&, boost::function0<void> const&>::invoke(boost::detail::function::function_buffer&, boost::python::detail::exception_handler const&, boost::function0<void> const&) (function_template.hpp:137)
==226638==
==226638== Invalid read of size 8
==226638== at 0x57E8032: ledger::journal_t::clear_xdata() (journal.cc:528)
==226638== by 0x58DFAF1: ~collector_wrapper (py_journal.cc:164)
==226638== by 0x58DFAF1: checked_delete<ledger::(anonymous namespace)::collector_wrapper> (checked_delete.hpp:36)
==226638== by 0x58DFAF1: checked_delete<ledger::(anonymous namespace)::collector_wrapper> (checked_delete.hpp:31)
==226638== by 0x58DFAF1: boost::detail::sp_counted_impl_p<ledger::(anonymous namespace)::collector_wrapper>::dispose() (sp_counted_impl.hpp:89)
==226638== by 0x58DC50C: UnknownInlinedFun (sp_counted_base_gcc_atomic.hpp:120)
==226638== by 0x58DC50C: UnknownInlinedFun (sp_counted_base_gcc_atomic.hpp:116)
==226638== by 0x58DC50C: ~shared_count (shared_count.hpp:432)
==226638== by 0x58DC50C: ~shared_ptr (shared_ptr.hpp:335)
==226638== by 0x58DC50C: boost::python::objects::pointer_holder<boost::shared_ptr<ledger::(anonymous namespace)::collector_wrapper>, ledger::(anonymous namespace)::collector_wrapper>::~pointer_holder() (pointer_holder.hpp:51)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x58E180C: UnknownInlinedFun (object.h:500)
==226638== by 0x58E180C: ~object_base (object_core.hpp:423)
==226638== by 0x58E180C: ~object (object_core.hpp:238)
==226638== by 0x58E180C: ~iterator_range (iterator.hpp:41)
==226638== by 0x58E180C: boost::python::objects::value_holder<boost::python::objects::iterator_range<boost::python::return_internal_reference<1ul, boost::python::default_call_policies>, __gnu_cxx::__normal_iterator<ledger::post_t**, std::vector<ledger::post_t*, std::allocator<ledger::post_t*> > > > >::~value_holder() (value_holder.hpp:39)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:500)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:567)
==226638== by 0x5EF54A4: life_support_call (life_support.cpp:30)
==226638== by 0x28401A: _PyObject_MakeTpCall (call.c:215)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:112)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:184)
==226638== by 0x2A5D82: handle_callback.lto_priv.0 (weakrefobject.c:952)
==226638== by 0x2A25E0: PyObject_ClearWeakRefs (weakrefobject.c:998)
==226638== Address 0x4eba830 is 0 bytes inside a block of size 544 free'd
==226638== at 0x484671B: operator delete(void*) (vg_replace_malloc.c:923)
==226638== by 0x57BA7C9: operator() (unique_ptr.h:95)
==226638== by 0x57BA7C9: ~unique_ptr (unique_ptr.h:396)
==226638== by 0x57BA7C9: ledger::session_t::~session_t() (session.h:80)
==226638== by 0x58FC52B: boost::python::objects::value_holder<ledger::session_t>::~value_holder() (value_holder.hpp:39)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:500)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:567)
==226638== by 0x5EF54A4: life_support_call (life_support.cpp:30)
==226638== by 0x28401A: _PyObject_MakeTpCall (call.c:215)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:112)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:184)
==226638== by 0x2A5D82: handle_callback.lto_priv.0 (weakrefobject.c:952)
==226638== by 0x2A25E0: PyObject_ClearWeakRefs (weakrefobject.c:998)
==226638== by 0x5EEDA75: instance_dealloc (class.cpp:344)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x26D9C8: UnknownInlinedFun (object.c:2300)
==226638== by 0x26D9C8: UnknownInlinedFun (object.h:500)
==226638== by 0x26D9C8: UnknownInlinedFun (object.h:567)
==226638== by 0x26D9C8: free_keys_object.lto_priv.0 (dictobject.c:628)
==226638== Block was alloc'd at
==226638== at 0x4843F2F: operator new(unsigned long) (vg_replace_malloc.c:422)
==226638== by 0x57B518B: ledger::session_t::session_t() (session.cc:62)
==226638== by 0x58FB017: value_holder (value_holder.hpp:131)
==226638== by 0x58FB017: boost::python::objects::make_holder<0>::apply<boost::python::objects::value_holder<ledger::session_t>, boost::mpl::vector0<mpl_::na> >::execute(_object*) (make_holder.hpp:94)
==226638== by 0x588BA6D: UnknownInlinedFun (invoke.hpp:79)
==226638== by 0x588BA6D: operator() (caller.hpp:233)
==226638== by 0x588BA6D: boost::python::objects::caller_py_function_impl<boost::python::detail::caller<void (*)(_object*), boost::python::default_call_policies, boost::mpl::vector2<void, _object*> > >::operator()(_object*, _object*) (py_function.hpp:38)
==226638== by 0x5EF145C: operator() (py_function.hpp:147)
==226638== by 0x5EF145C: boost::python::objects::function::call(_object*, _object*) const (function.cpp:221)
==226638== by 0x5EF1627: operator() (function.cpp:581)
==226638== by 0x5EF1627: boost::detail::function::void_function_ref_invoker0<boost::python::objects::(anonymous namespace)::bind_return, void>::invoke(boost::detail::function::function_buffer&) (function_template.hpp:193)
==226638== by 0x5EF659A: operator() (function_template.hpp:763)
==226638== by 0x5EF659A: boost::python::detail::exception_handler::operator()(boost::function0<void> const&) const (errors.cpp:74)
==226638== by 0x58E4692: operator() (translate_exception.hpp:46)
==226638== by 0x58E4692: operator()<bool, boost::python::detail::translate_exception<ledger::error_count, void (*)(const ledger::error_count&)>, boost::_bi::rrlist2<const boost::python::detail::exception_handler&, const boost::function0<void>&> > (bind.hpp:388)
==226638== by 0x58E4692: operator()<const boost::python::detail::exception_handler&, const boost::function0<void>&> (bind.hpp:1318)
==226638== by 0x58E4692: boost::detail::function::function_obj_invoker2<boost::_bi::bind_t<bool, boost::python::detail::translate_exception<ledger::error_count, void (*)(ledger::error_count const&)>, boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<void (*)(ledger::error_count const&)> > >, bool, boost::python::detail::exception_handler const&, boost::function0<void> const&>::invoke(boost::detail::function::function_buffer&, boost::python::detail::exception_handler const&, boost::function0<void> const&) (function_template.hpp:137)
==226638== by 0x58E46E2: operator() (translate_exception.hpp:46)
==226638== by 0x58E46E2: operator()<bool, boost::python::detail::translate_exception<ledger::parse_error, void (*)(const ledger::parse_error&)>, boost::_bi::rrlist2<const boost::python::detail::exception_handler&, const boost::function0<void>&> > (bind.hpp:388)
==226638== by 0x58E46E2: operator()<const boost::python::detail::exception_handler&, const boost::function0<void>&> (bind.hpp:1318)
==226638== by 0x58E46E2: boost::detail::function::function_obj_invoker2<boost::_bi::bind_t<bool, boost::python::detail::translate_exception<ledger::parse_error, void (*)(ledger::parse_error const&)>, boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<void (*)(ledger::parse_error const&)> > >, bool, boost::python::detail::exception_handler const&, boost::function0<void> const&>::invoke(boost::detail::function::function_buffer&, boost::python::detail::exception_handler const&, boost::function0<void> const&) (function_template.hpp:137)
==226638== by 0x58AF372: operator() (translate_exception.hpp:46)
==226638== by 0x58AF372: operator()<bool, boost::python::detail::translate_exception<ledger::balance_error, void (*)(const ledger::balance_error&)>, boost::_bi::rrlist2<const boost::python::detail::exception_handler&, const boost::function0<void>&> > (bind.hpp:388)
==226638== by 0x58AF372: operator()<const boost::python::detail::exception_handler&, const boost::function0<void>&> (bind.hpp:1318)
==226638== by 0x58AF372: boost::detail::function::function_obj_invoker2<boost::_bi::bind_t<bool, boost::python::detail::translate_exception<ledger::balance_error, void (*)(ledger::balance_error const&)>, boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<void (*)(ledger::balance_error const&)> > >, bool, boost::python::detail::exception_handler const&, boost::function0<void> const&>::invoke(boost::detail::function::function_buffer&, boost::python::detail::exception_handler const&, boost::function0<void> const&) (function_template.hpp:137)
==226638== by 0x590D412: operator() (translate_exception.hpp:46)
==226638== by 0x590D412: operator()<bool, boost::python::detail::translate_exception<ledger::value_error, void (*)(const ledger::value_error&)>, boost::_bi::rrlist2<const boost::python::detail::exception_handler&, const boost::function0<void>&> > (bind.hpp:388)
==226638== by 0x590D412: operator()<const boost::python::detail::exception_handler&, const boost::function0<void>&> (bind.hpp:1318)
==226638== by 0x590D412: boost::detail::function::function_obj_invoker2<boost::_bi::bind_t<bool, boost::python::detail::translate_exception<ledger::value_error, void (*)(ledger::value_error const&)>, boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<void (*)(ledger::value_error const&)> > >, bool, boost::python::detail::exception_handler const&, boost::function0<void> const&>::invoke(boost::detail::function::function_buffer&, boost::python::detail::exception_handler const&, boost::function0<void> const&) (function_template.hpp:137)
==226638== by 0x58A4492: operator() (translate_exception.hpp:46)
==226638== by 0x58A4492: operator()<bool, boost::python::detail::translate_exception<ledger::amount_error, void (*)(const ledger::amount_error&)>, boost::_bi::rrlist2<const boost::python::detail::exception_handler&, const boost::function0<void>&> > (bind.hpp:388)
==226638== by 0x58A4492: operator()<const boost::python::detail::exception_handler&, const boost::function0<void>&> (bind.hpp:1318)
==226638== by 0x58A4492: boost::detail::function::function_obj_invoker2<boost::_bi::bind_t<bool, boost::python::detail::translate_exception<ledger::amount_error, void (*)(ledger::amount_error const&)>, boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<void (*)(ledger::amount_error const&)> > >, bool, boost::python::detail::exception_handler const&, boost::function0<void> const&>::invoke(boost::detail::function::function_buffer&, boost::python::detail::exception_handler const&, boost::function0<void> const&) (function_template.hpp:137)
==226638==
==226638== Invalid read of size 1
==226638== at 0x57F0D0D: destroy (optional.hpp:756)
==226638== by 0x57F0D0D: assign (optional.hpp:357)
==226638== by 0x57F0D0D: operator= (optional.hpp:1101)
==226638== by 0x57F0D0D: ledger::account_t::clear_xdata() (account.cc:606)
==226638== by 0x58DFAF1: ~collector_wrapper (py_journal.cc:164)
==226638== by 0x58DFAF1: checked_delete<ledger::(anonymous namespace)::collector_wrapper> (checked_delete.hpp:36)
==226638== by 0x58DFAF1: checked_delete<ledger::(anonymous namespace)::collector_wrapper> (checked_delete.hpp:31)
==226638== by 0x58DFAF1: boost::detail::sp_counted_impl_p<ledger::(anonymous namespace)::collector_wrapper>::dispose() (sp_counted_impl.hpp:89)
==226638== by 0x58DC50C: UnknownInlinedFun (sp_counted_base_gcc_atomic.hpp:120)
==226638== by 0x58DC50C: UnknownInlinedFun (sp_counted_base_gcc_atomic.hpp:116)
==226638== by 0x58DC50C: ~shared_count (shared_count.hpp:432)
==226638== by 0x58DC50C: ~shared_ptr (shared_ptr.hpp:335)
==226638== by 0x58DC50C: boost::python::objects::pointer_holder<boost::shared_ptr<ledger::(anonymous namespace)::collector_wrapper>, ledger::(anonymous namespace)::collector_wrapper>::~pointer_holder() (pointer_holder.hpp:51)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x58E180C: UnknownInlinedFun (object.h:500)
==226638== by 0x58E180C: ~object_base (object_core.hpp:423)
==226638== by 0x58E180C: ~object (object_core.hpp:238)
==226638== by 0x58E180C: ~iterator_range (iterator.hpp:41)
==226638== by 0x58E180C: boost::python::objects::value_holder<boost::python::objects::iterator_range<boost::python::return_internal_reference<1ul, boost::python::default_call_policies>, __gnu_cxx::__normal_iterator<ledger::post_t**, std::vector<ledger::post_t*, std::allocator<ledger::post_t*> > > > >::~value_holder() (value_holder.hpp:39)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:500)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:567)
==226638== by 0x5EF54A4: life_support_call (life_support.cpp:30)
==226638== by 0x28401A: _PyObject_MakeTpCall (call.c:215)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:112)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:184)
==226638== by 0x2A5D82: handle_callback.lto_priv.0 (weakrefobject.c:952)
==226638== by 0x2A25E0: PyObject_ClearWeakRefs (weakrefobject.c:998)
==226638== Address 0x4ebabe0 is 336 bytes inside a block of size 976 free'd
==226638== at 0x484671B: operator delete(void*) (vg_replace_malloc.c:923)
==226638== by 0x57EB5B2: checked_delete<ledger::account_t> (checked_delete.hpp:36)
==226638== by 0x57EB5B2: ledger::journal_t::~journal_t() (journal.cc:82)
==226638== by 0x57BA7C1: operator() (unique_ptr.h:95)
==226638== by 0x57BA7C1: ~unique_ptr (unique_ptr.h:396)
==226638== by 0x57BA7C1: ledger::session_t::~session_t() (session.h:80)
==226638== by 0x58FC52B: boost::python::objects::value_holder<ledger::session_t>::~value_holder() (value_holder.hpp:39)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:500)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:567)
==226638== by 0x5EF54A4: life_support_call (life_support.cpp:30)
==226638== by 0x28401A: _PyObject_MakeTpCall (call.c:215)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:112)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:184)
==226638== by 0x2A5D82: handle_callback.lto_priv.0 (weakrefobject.c:952)
==226638== by 0x2A25E0: PyObject_ClearWeakRefs (weakrefobject.c:998)
==226638== by 0x5EEDA75: instance_dealloc (class.cpp:344)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== Block was alloc'd at
==226638== at 0x4843F2F: operator new(unsigned long) (vg_replace_malloc.c:422)
==226638== by 0x57E7A49: ledger::journal_t::initialize() (journal.cc:87)
==226638== by 0x57EB359: ledger::journal_t::journal_t() (journal.cc:47)
==226638== by 0x57B5425: ledger::session_t::session_t() (session.cc:62)
==226638== by 0x58FB017: value_holder (value_holder.hpp:131)
==226638== by 0x58FB017: boost::python::objects::make_holder<0>::apply<boost::python::objects::value_holder<ledger::session_t>, boost::mpl::vector0<mpl_::na> >::execute(_object*) (make_holder.hpp:94)
==226638== by 0x588BA6D: UnknownInlinedFun (invoke.hpp:79)
==226638== by 0x588BA6D: operator() (caller.hpp:233)
==226638== by 0x588BA6D: boost::python::objects::caller_py_function_impl<boost::python::detail::caller<void (*)(_object*), boost::python::default_call_policies, boost::mpl::vector2<void, _object*> > >::operator()(_object*, _object*) (py_function.hpp:38)
==226638== by 0x5EF145C: operator() (py_function.hpp:147)
==226638== by 0x5EF145C: boost::python::objects::function::call(_object*, _object*) const (function.cpp:221)
==226638== by 0x5EF1627: operator() (function.cpp:581)
==226638== by 0x5EF1627: boost::detail::function::void_function_ref_invoker0<boost::python::objects::(anonymous namespace)::bind_return, void>::invoke(boost::detail::function::function_buffer&) (function_template.hpp:193)
==226638== by 0x5EF659A: operator() (function_template.hpp:763)
==226638== by 0x5EF659A: boost::python::detail::exception_handler::operator()(boost::function0<void> const&) const (errors.cpp:74)
==226638== by 0x58E4692: operator() (translate_exception.hpp:46)
==226638== by 0x58E4692: operator()<bool, boost::python::detail::translate_exception<ledger::error_count, void (*)(const ledger::error_count&)>, boost::_bi::rrlist2<const boost::python::detail::exception_handler&, const boost::function0<void>&> > (bind.hpp:388)
==226638== by 0x58E4692: operator()<const boost::python::detail::exception_handler&, const boost::function0<void>&> (bind.hpp:1318)
==226638== by 0x58E4692: boost::detail::function::function_obj_invoker2<boost::_bi::bind_t<bool, boost::python::detail::translate_exception<ledger::error_count, void (*)(ledger::error_count const&)>, boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<void (*)(ledger::error_count const&)> > >, bool, boost::python::detail::exception_handler const&, boost::function0<void> const&>::invoke(boost::detail::function::function_buffer&, boost::python::detail::exception_handler const&, boost::function0<void> const&) (function_template.hpp:137)
==226638== by 0x58E46E2: operator() (translate_exception.hpp:46)
==226638== by 0x58E46E2: operator()<bool, boost::python::detail::translate_exception<ledger::parse_error, void (*)(const ledger::parse_error&)>, boost::_bi::rrlist2<const boost::python::detail::exception_handler&, const boost::function0<void>&> > (bind.hpp:388)
==226638== by 0x58E46E2: operator()<const boost::python::detail::exception_handler&, const boost::function0<void>&> (bind.hpp:1318)
==226638== by 0x58E46E2: boost::detail::function::function_obj_invoker2<boost::_bi::bind_t<bool, boost::python::detail::translate_exception<ledger::parse_error, void (*)(ledger::parse_error const&)>, boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<void (*)(ledger::parse_error const&)> > >, bool, boost::python::detail::exception_handler const&, boost::function0<void> const&>::invoke(boost::detail::function::function_buffer&, boost::python::detail::exception_handler const&, boost::function0<void> const&) (function_template.hpp:137)
==226638== by 0x58AF372: operator() (translate_exception.hpp:46)
==226638== by 0x58AF372: operator()<bool, boost::python::detail::translate_exception<ledger::balance_error, void (*)(const ledger::balance_error&)>, boost::_bi::rrlist2<const boost::python::detail::exception_handler&, const boost::function0<void>&> > (bind.hpp:388)
==226638== by 0x58AF372: operator()<const boost::python::detail::exception_handler&, const boost::function0<void>&> (bind.hpp:1318)
==226638== by 0x58AF372: boost::detail::function::function_obj_invoker2<boost::_bi::bind_t<bool, boost::python::detail::translate_exception<ledger::balance_error, void (*)(ledger::balance_error const&)>, boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<void (*)(ledger::balance_error const&)> > >, bool, boost::python::detail::exception_handler const&, boost::function0<void> const&>::invoke(boost::detail::function::function_buffer&, boost::python::detail::exception_handler const&, boost::function0<void> const&) (function_template.hpp:137)
==226638==
==226638== Invalid read of size 8
==226638== at 0x57F0D16: begin (stl_tree.h:996)
==226638== by 0x57F0D16: begin (stl_map.h:367)
==226638== by 0x57F0D16: range_begin<std::map<std::__cxx11::basic_string<char>, ledger::account_t*> > (begin.hpp:45)
==226638== by 0x57F0D16: begin<std::map<std::__cxx11::basic_string<char>, ledger::account_t*> > (begin.hpp:103)
==226638== by 0x57F0D16: begin<std::map<std::__cxx11::basic_string<char>, ledger::account_t*>, mpl_::bool_<false> > (foreach.hpp:680)
==226638== by 0x57F0D16: ledger::account_t::clear_xdata() (account.cc:608)
==226638== by 0x58DFAF1: ~collector_wrapper (py_journal.cc:164)
==226638== by 0x58DFAF1: checked_delete<ledger::(anonymous namespace)::collector_wrapper> (checked_delete.hpp:36)
==226638== by 0x58DFAF1: checked_delete<ledger::(anonymous namespace)::collector_wrapper> (checked_delete.hpp:31)
==226638== by 0x58DFAF1: boost::detail::sp_counted_impl_p<ledger::(anonymous namespace)::collector_wrapper>::dispose() (sp_counted_impl.hpp:89)
==226638== by 0x58DC50C: UnknownInlinedFun (sp_counted_base_gcc_atomic.hpp:120)
==226638== by 0x58DC50C: UnknownInlinedFun (sp_counted_base_gcc_atomic.hpp:116)
==226638== by 0x58DC50C: ~shared_count (shared_count.hpp:432)
==226638== by 0x58DC50C: ~shared_ptr (shared_ptr.hpp:335)
==226638== by 0x58DC50C: boost::python::objects::pointer_holder<boost::shared_ptr<ledger::(anonymous namespace)::collector_wrapper>, ledger::(anonymous namespace)::collector_wrapper>::~pointer_holder() (pointer_holder.hpp:51)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x58E180C: UnknownInlinedFun (object.h:500)
==226638== by 0x58E180C: ~object_base (object_core.hpp:423)
==226638== by 0x58E180C: ~object (object_core.hpp:238)
==226638== by 0x58E180C: ~iterator_range (iterator.hpp:41)
==226638== by 0x58E180C: boost::python::objects::value_holder<boost::python::objects::iterator_range<boost::python::return_internal_reference<1ul, boost::python::default_call_policies>, __gnu_cxx::__normal_iterator<ledger::post_t**, std::vector<ledger::post_t*, std::allocator<ledger::post_t*> > > > >::~value_holder() (value_holder.hpp:39)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:500)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:567)
==226638== by 0x5EF54A4: life_support_call (life_support.cpp:30)
==226638== by 0x28401A: _PyObject_MakeTpCall (call.c:215)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:112)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:184)
==226638== by 0x2A5D82: handle_callback.lto_priv.0 (weakrefobject.c:952)
==226638== by 0x2A25E0: PyObject_ClearWeakRefs (weakrefobject.c:998)
==226638== Address 0x4ebab10 is 128 bytes inside a block of size 976 free'd
==226638== at 0x484671B: operator delete(void*) (vg_replace_malloc.c:923)
==226638== by 0x57EB5B2: checked_delete<ledger::account_t> (checked_delete.hpp:36)
==226638== by 0x57EB5B2: ledger::journal_t::~journal_t() (journal.cc:82)
==226638== by 0x57BA7C1: operator() (unique_ptr.h:95)
==226638== by 0x57BA7C1: ~unique_ptr (unique_ptr.h:396)
==226638== by 0x57BA7C1: ledger::session_t::~session_t() (session.h:80)
==226638== by 0x58FC52B: boost::python::objects::value_holder<ledger::session_t>::~value_holder() (value_holder.hpp:39)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:500)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:567)
==226638== by 0x5EF54A4: life_support_call (life_support.cpp:30)
==226638== by 0x28401A: _PyObject_MakeTpCall (call.c:215)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:112)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:184)
==226638== by 0x2A5D82: handle_callback.lto_priv.0 (weakrefobject.c:952)
==226638== by 0x2A25E0: PyObject_ClearWeakRefs (weakrefobject.c:998)
==226638== by 0x5EEDA75: instance_dealloc (class.cpp:344)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== Block was alloc'd at
==226638== at 0x4843F2F: operator new(unsigned long) (vg_replace_malloc.c:422)
==226638== by 0x57E7A49: ledger::journal_t::initialize() (journal.cc:87)
==226638== by 0x57EB359: ledger::journal_t::journal_t() (journal.cc:47)
==226638== by 0x57B5425: ledger::session_t::session_t() (session.cc:62)
==226638== by 0x58FB017: value_holder (value_holder.hpp:131)
==226638== by 0x58FB017: boost::python::objects::make_holder<0>::apply<boost::python::objects::value_holder<ledger::session_t>, boost::mpl::vector0<mpl_::na> >::execute(_object*) (make_holder.hpp:94)
==226638== by 0x588BA6D: UnknownInlinedFun (invoke.hpp:79)
==226638== by 0x588BA6D: operator() (caller.hpp:233)
==226638== by 0x588BA6D: boost::python::objects::caller_py_function_impl<boost::python::detail::caller<void (*)(_object*), boost::python::default_call_policies, boost::mpl::vector2<void, _object*> > >::operator()(_object*, _object*) (py_function.hpp:38)
==226638== by 0x5EF145C: operator() (py_function.hpp:147)
==226638== by 0x5EF145C: boost::python::objects::function::call(_object*, _object*) const (function.cpp:221)
==226638== by 0x5EF1627: operator() (function.cpp:581)
==226638== by 0x5EF1627: boost::detail::function::void_function_ref_invoker0<boost::python::objects::(anonymous namespace)::bind_return, void>::invoke(boost::detail::function::function_buffer&) (function_template.hpp:193)
==226638== by 0x5EF659A: operator() (function_template.hpp:763)
==226638== by 0x5EF659A: boost::python::detail::exception_handler::operator()(boost::function0<void> const&) const (errors.cpp:74)
==226638== by 0x58E4692: operator() (translate_exception.hpp:46)
==226638== by 0x58E4692: operator()<bool, boost::python::detail::translate_exception<ledger::error_count, void (*)(const ledger::error_count&)>, boost::_bi::rrlist2<const boost::python::detail::exception_handler&, const boost::function0<void>&> > (bind.hpp:388)
==226638== by 0x58E4692: operator()<const boost::python::detail::exception_handler&, const boost::function0<void>&> (bind.hpp:1318)
==226638== by 0x58E4692: boost::detail::function::function_obj_invoker2<boost::_bi::bind_t<bool, boost::python::detail::translate_exception<ledger::error_count, void (*)(ledger::error_count const&)>, boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<void (*)(ledger::error_count const&)> > >, bool, boost::python::detail::exception_handler const&, boost::function0<void> const&>::invoke(boost::detail::function::function_buffer&, boost::python::detail::exception_handler const&, boost::function0<void> const&) (function_template.hpp:137)
==226638== by 0x58E46E2: operator() (translate_exception.hpp:46)
==226638== by 0x58E46E2: operator()<bool, boost::python::detail::translate_exception<ledger::parse_error, void (*)(const ledger::parse_error&)>, boost::_bi::rrlist2<const boost::python::detail::exception_handler&, const boost::function0<void>&> > (bind.hpp:388)
==226638== by 0x58E46E2: operator()<const boost::python::detail::exception_handler&, const boost::function0<void>&> (bind.hpp:1318)
==226638== by 0x58E46E2: boost::detail::function::function_obj_invoker2<boost::_bi::bind_t<bool, boost::python::detail::translate_exception<ledger::parse_error, void (*)(ledger::parse_error const&)>, boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<void (*)(ledger::parse_error const&)> > >, bool, boost::python::detail::exception_handler const&, boost::function0<void> const&>::invoke(boost::detail::function::function_buffer&, boost::python::detail::exception_handler const&, boost::function0<void> const&) (function_template.hpp:137)
==226638== by 0x58AF372: operator() (translate_exception.hpp:46)
==226638== by 0x58AF372: operator()<bool, boost::python::detail::translate_exception<ledger::balance_error, void (*)(const ledger::balance_error&)>, boost::_bi::rrlist2<const boost::python::detail::exception_handler&, const boost::function0<void>&> > (bind.hpp:388)
==226638== by 0x58AF372: operator()<const boost::python::detail::exception_handler&, const boost::function0<void>&> (bind.hpp:1318)
==226638== by 0x58AF372: boost::detail::function::function_obj_invoker2<boost::_bi::bind_t<bool, boost::python::detail::translate_exception<ledger::balance_error, void (*)(ledger::balance_error const&)>, boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<void (*)(ledger::balance_error const&)> > >, bool, boost::python::detail::exception_handler const&, boost::function0<void> const&>::invoke(boost::detail::function::function_buffer&, boost::python::detail::exception_handler const&, boost::function0<void> const&) (function_template.hpp:137)
==226638==
==226638== Invalid read of size 8
==226638== at 0x57F0D26: ledger::account_t::clear_xdata() (account.cc:609)
==226638== by 0x58DFAF1: ~collector_wrapper (py_journal.cc:164)
==226638== by 0x58DFAF1: checked_delete<ledger::(anonymous namespace)::collector_wrapper> (checked_delete.hpp:36)
==226638== by 0x58DFAF1: checked_delete<ledger::(anonymous namespace)::collector_wrapper> (checked_delete.hpp:31)
==226638== by 0x58DFAF1: boost::detail::sp_counted_impl_p<ledger::(anonymous namespace)::collector_wrapper>::dispose() (sp_counted_impl.hpp:89)
==226638== by 0x58DC50C: UnknownInlinedFun (sp_counted_base_gcc_atomic.hpp:120)
==226638== by 0x58DC50C: UnknownInlinedFun (sp_counted_base_gcc_atomic.hpp:116)
==226638== by 0x58DC50C: ~shared_count (shared_count.hpp:432)
==226638== by 0x58DC50C: ~shared_ptr (shared_ptr.hpp:335)
==226638== by 0x58DC50C: boost::python::objects::pointer_holder<boost::shared_ptr<ledger::(anonymous namespace)::collector_wrapper>, ledger::(anonymous namespace)::collector_wrapper>::~pointer_holder() (pointer_holder.hpp:51)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x58E180C: UnknownInlinedFun (object.h:500)
==226638== by 0x58E180C: ~object_base (object_core.hpp:423)
==226638== by 0x58E180C: ~object (object_core.hpp:238)
==226638== by 0x58E180C: ~iterator_range (iterator.hpp:41)
==226638== by 0x58E180C: boost::python::objects::value_holder<boost::python::objects::iterator_range<boost::python::return_internal_reference<1ul, boost::python::default_call_policies>, __gnu_cxx::__normal_iterator<ledger::post_t**, std::vector<ledger::post_t*, std::allocator<ledger::post_t*> > > > >::~value_holder() (value_holder.hpp:39)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:500)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:567)
==226638== by 0x5EF54A4: life_support_call (life_support.cpp:30)
==226638== by 0x28401A: _PyObject_MakeTpCall (call.c:215)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:112)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:184)
==226638== by 0x2A5D82: handle_callback.lto_priv.0 (weakrefobject.c:952)
==226638== by 0x2A25E0: PyObject_ClearWeakRefs (weakrefobject.c:998)
==226638== Address 0x4ebe340 is 64 bytes inside a block of size 72 free'd
==226638== at 0x484671B: operator delete(void*) (vg_replace_malloc.c:923)
==226638== by 0x57F4D47: deallocate (new_allocator.h:158)
==226638== by 0x57F4D47: deallocate (alloc_traits.h:496)
==226638== by 0x57F4D47: _M_put_node (stl_tree.h:565)
==226638== by 0x57F4D47: _M_drop_node (stl_tree.h:632)
==226638== by 0x57F4D47: _M_erase (stl_tree.h:1937)
==226638== by 0x57F4D47: ~_Rb_tree (stl_tree.h:984)
==226638== by 0x57F4D47: ~map (stl_map.h:312)
==226638== by 0x57F4D47: ledger::account_t::~account_t() (account.cc:50)
==226638== by 0x57F4DE8: ledger::account_t::~account_t() (account.cc:50)
==226638== by 0x57EB5B2: checked_delete<ledger::account_t> (checked_delete.hpp:36)
==226638== by 0x57EB5B2: ledger::journal_t::~journal_t() (journal.cc:82)
==226638== by 0x57BA7C1: operator() (unique_ptr.h:95)
==226638== by 0x57BA7C1: ~unique_ptr (unique_ptr.h:396)
==226638== by 0x57BA7C1: ledger::session_t::~session_t() (session.h:80)
==226638== by 0x58FC52B: boost::python::objects::value_holder<ledger::session_t>::~value_holder() (value_holder.hpp:39)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:500)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:567)
==226638== by 0x5EF54A4: life_support_call (life_support.cpp:30)
==226638== by 0x28401A: _PyObject_MakeTpCall (call.c:215)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:112)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:184)
==226638== by 0x2A5D82: handle_callback.lto_priv.0 (weakrefobject.c:952)
==226638== by 0x2A25E0: PyObject_ClearWeakRefs (weakrefobject.c:998)
==226638== Block was alloc'd at
==226638== at 0x4843F2F: operator new(unsigned long) (vg_replace_malloc.c:422)
==226638== by 0x57E1F6A: allocate (new_allocator.h:137)
==226638== by 0x57E1F6A: allocate (alloc_traits.h:464)
==226638== by 0x57E1F6A: _M_get_node (stl_tree.h:561)
==226638== by 0x57E1F6A: _M_create_node<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, ledger::account_t*> > (stl_tree.h:611)
==226638== by 0x57E1F6A: operator()<std::pair<const std::__cxx11::basic_string<char>, ledger::account_t*> > (stl_tree.h:529)
==226638== by 0x57E1F6A: _M_insert_<std::pair<const std::__cxx11::basic_string<char>, ledger::account_t*>, std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, ledger::account_t*>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, ledger::account_t*> >, std::less<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, ledger::account_t*> > >::_Alloc_node> (stl_tree.h:1830)
==226638== by 0x57E1F6A: std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ledger::account_t*> >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ledger::account_t*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ledger::account_t*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ledger::account_t*> > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ledger::account_t*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ledger::account_t*>&&) (stl_tree.h:2175)
==226638== by 0x57EF853: insert (stl_map.h:841)
==226638== by 0x57EF853: ledger::account_t::find_account(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) (account.cc:95)
==226638== by 0x57EC00F: ledger::journal_t::register_account(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, ledger::post_t*, ledger::account_t*) (journal.cc:128)
==226638== by 0x57D615C: ledger::(anonymous namespace)::instance_t::parse_post(char*, long, ledger::account_t*, ledger::xact_t*, bool) (textual.cc:1480)
==226638== by 0x57DF209: parse_xact (textual.cc:1941)
==226638== by 0x57DF209: xact_directive (textual.cc:707)
==226638== by 0x57DF209: ledger::(anonymous namespace)::instance_t::read_next_directive(bool&) (textual.cc:381)
==226638== by 0x57E02DA: ledger::(anonymous namespace)::instance_t::parse() (textual.cc:252)
==226638== by 0x57E06EB: ledger::journal_t::read_textual(ledger::parse_context_stack_t&) (textual.cc:2004)
==226638== by 0x57EA3FA: ledger::journal_t::read(ledger::parse_context_stack_t&) (journal.cc:472)
==226638== by 0x57B3C17: ledger::session_t::read_journal_from_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (session.cc:233)
==226638== by 0x58FBEB9: invoke<boost::python::to_python_indirect<ledger::journal_t*, boost::python::detail::make_reference_holder>, ledger::journal_t* (ledger::session_t::*)(const std::__cxx11::basic_string<char>&), boost::python::arg_from_python<ledger::session_t&>, boost::python::arg_from_python<const std::__cxx11::basic_string<char>&> > (invoke.hpp:86)
==226638== by 0x58FBEB9: operator() (caller.hpp:233)
==226638== by 0x58FBEB9: boost::python::objects::caller_py_function_impl<boost::python::detail::caller<ledger::journal_t* (ledger::session_t::*)(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&), boost::python::return_internal_reference<1ul, boost::python::default_call_policies>, boost::mpl::vector3<ledger::journal_t*, ledger::session_t&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&> > >::operator()(_object*, _object*) (py_function.hpp:38)
==226638== by 0x5EF145C: operator() (py_function.hpp:147)
==226638== by 0x5EF145C: boost::python::objects::function::call(_object*, _object*) const (function.cpp:221)
==226638==
==226638== Invalid read of size 1
==226638== at 0x57F0D2A: ledger::account_t::clear_xdata() (account.cc:609)
==226638== by 0x58DFAF1: ~collector_wrapper (py_journal.cc:164)
==226638== by 0x58DFAF1: checked_delete<ledger::(anonymous namespace)::collector_wrapper> (checked_delete.hpp:36)
==226638== by 0x58DFAF1: checked_delete<ledger::(anonymous namespace)::collector_wrapper> (checked_delete.hpp:31)
==226638== by 0x58DFAF1: boost::detail::sp_counted_impl_p<ledger::(anonymous namespace)::collector_wrapper>::dispose() (sp_counted_impl.hpp:89)
==226638== by 0x58DC50C: UnknownInlinedFun (sp_counted_base_gcc_atomic.hpp:120)
==226638== by 0x58DC50C: UnknownInlinedFun (sp_counted_base_gcc_atomic.hpp:116)
==226638== by 0x58DC50C: ~shared_count (shared_count.hpp:432)
==226638== by 0x58DC50C: ~shared_ptr (shared_ptr.hpp:335)
==226638== by 0x58DC50C: boost::python::objects::pointer_holder<boost::shared_ptr<ledger::(anonymous namespace)::collector_wrapper>, ledger::(anonymous namespace)::collector_wrapper>::~pointer_holder() (pointer_holder.hpp:51)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x58E180C: UnknownInlinedFun (object.h:500)
==226638== by 0x58E180C: ~object_base (object_core.hpp:423)
==226638== by 0x58E180C: ~object (object_core.hpp:238)
==226638== by 0x58E180C: ~iterator_range (iterator.hpp:41)
==226638== by 0x58E180C: boost::python::objects::value_holder<boost::python::objects::iterator_range<boost::python::return_internal_reference<1ul, boost::python::default_call_policies>, __gnu_cxx::__normal_iterator<ledger::post_t**, std::vector<ledger::post_t*, std::allocator<ledger::post_t*> > > > >::~value_holder() (value_holder.hpp:39)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:500)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:567)
==226638== by 0x5EF54A4: life_support_call (life_support.cpp:30)
==226638== by 0x28401A: _PyObject_MakeTpCall (call.c:215)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:112)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:184)
==226638== by 0x2A5D82: handle_callback.lto_priv.0 (weakrefobject.c:952)
==226638== by 0x2A25E0: PyObject_ClearWeakRefs (weakrefobject.c:998)
==226638== Address 0x4ebdef8 is 8 bytes inside a block of size 976 free'd
==226638== at 0x484671B: operator delete(void*) (vg_replace_malloc.c:923)
==226638== by 0x57F4C44: ~account_t (account.cc:50)
==226638== by 0x57F4C44: checked_delete<ledger::account_t> (checked_delete.hpp:36)
==226638== by 0x57F4C44: ledger::account_t::~account_t() (account.cc:47)
==226638== by 0x57F4DE8: ledger::account_t::~account_t() (account.cc:50)
==226638== by 0x57EB5B2: checked_delete<ledger::account_t> (checked_delete.hpp:36)
==226638== by 0x57EB5B2: ledger::journal_t::~journal_t() (journal.cc:82)
==226638== by 0x57BA7C1: operator() (unique_ptr.h:95)
==226638== by 0x57BA7C1: ~unique_ptr (unique_ptr.h:396)
==226638== by 0x57BA7C1: ledger::session_t::~session_t() (session.h:80)
==226638== by 0x58FC52B: boost::python::objects::value_holder<ledger::session_t>::~value_holder() (value_holder.hpp:39)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:500)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:567)
==226638== by 0x5EF54A4: life_support_call (life_support.cpp:30)
==226638== by 0x28401A: _PyObject_MakeTpCall (call.c:215)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:112)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:184)
==226638== by 0x2A5D82: handle_callback.lto_priv.0 (weakrefobject.c:952)
==226638== by 0x2A25E0: PyObject_ClearWeakRefs (weakrefobject.c:998)
==226638== Block was alloc'd at
==226638== at 0x4843F2F: operator new(unsigned long) (vg_replace_malloc.c:422)
==226638== by 0x57EF722: ledger::account_t::find_account(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) (account.cc:83)
==226638== by 0x57EC00F: ledger::journal_t::register_account(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, ledger::post_t*, ledger::account_t*) (journal.cc:128)
==226638== by 0x57D615C: ledger::(anonymous namespace)::instance_t::parse_post(char*, long, ledger::account_t*, ledger::xact_t*, bool) (textual.cc:1480)
==226638== by 0x57DF209: parse_xact (textual.cc:1941)
==226638== by 0x57DF209: xact_directive (textual.cc:707)
==226638== by 0x57DF209: ledger::(anonymous namespace)::instance_t::read_next_directive(bool&) (textual.cc:381)
==226638== by 0x57E02DA: ledger::(anonymous namespace)::instance_t::parse() (textual.cc:252)
==226638== by 0x57E06EB: ledger::journal_t::read_textual(ledger::parse_context_stack_t&) (textual.cc:2004)
==226638== by 0x57EA3FA: ledger::journal_t::read(ledger::parse_context_stack_t&) (journal.cc:472)
==226638== by 0x57B3C17: ledger::session_t::read_journal_from_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (session.cc:233)
==226638== by 0x58FBEB9: invoke<boost::python::to_python_indirect<ledger::journal_t*, boost::python::detail::make_reference_holder>, ledger::journal_t* (ledger::session_t::*)(const std::__cxx11::basic_string<char>&), boost::python::arg_from_python<ledger::session_t&>, boost::python::arg_from_python<const std::__cxx11::basic_string<char>&> > (invoke.hpp:86)
==226638== by 0x58FBEB9: operator() (caller.hpp:233)
==226638== by 0x58FBEB9: boost::python::objects::caller_py_function_impl<boost::python::detail::caller<ledger::journal_t* (ledger::session_t::*)(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&), boost::python::return_internal_reference<1ul, boost::python::default_call_policies>, boost::mpl::vector3<ledger::journal_t*, ledger::session_t&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&> > >::operator()(_object*, _object*) (py_function.hpp:38)
==226638== by 0x5EF145C: operator() (py_function.hpp:147)
==226638== by 0x5EF145C: boost::python::objects::function::call(_object*, _object*) const (function.cpp:221)
==226638== by 0x5EF1627: operator() (function.cpp:581)
==226638== by 0x5EF1627: boost::detail::function::void_function_ref_invoker0<boost::python::objects::(anonymous namespace)::bind_return, void>::invoke(boost::detail::function::function_buffer&) (function_template.hpp:193)
==226638==
==226638== Invalid read of size 1
==226638== at 0x57F0D0D: destroy (optional.hpp:756)
==226638== by 0x57F0D0D: assign (optional.hpp:357)
==226638== by 0x57F0D0D: operator= (optional.hpp:1101)
==226638== by 0x57F0D0D: ledger::account_t::clear_xdata() (account.cc:606)
==226638== by 0x57F0D54: ledger::account_t::clear_xdata() (account.cc:610)
==226638== by 0x58DFAF1: ~collector_wrapper (py_journal.cc:164)
==226638== by 0x58DFAF1: checked_delete<ledger::(anonymous namespace)::collector_wrapper> (checked_delete.hpp:36)
==226638== by 0x58DFAF1: checked_delete<ledger::(anonymous namespace)::collector_wrapper> (checked_delete.hpp:31)
==226638== by 0x58DFAF1: boost::detail::sp_counted_impl_p<ledger::(anonymous namespace)::collector_wrapper>::dispose() (sp_counted_impl.hpp:89)
==226638== by 0x58DC50C: UnknownInlinedFun (sp_counted_base_gcc_atomic.hpp:120)
==226638== by 0x58DC50C: UnknownInlinedFun (sp_counted_base_gcc_atomic.hpp:116)
==226638== by 0x58DC50C: ~shared_count (shared_count.hpp:432)
==226638== by 0x58DC50C: ~shared_ptr (shared_ptr.hpp:335)
==226638== by 0x58DC50C: boost::python::objects::pointer_holder<boost::shared_ptr<ledger::(anonymous namespace)::collector_wrapper>, ledger::(anonymous namespace)::collector_wrapper>::~pointer_holder() (pointer_holder.hpp:51)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x58E180C: UnknownInlinedFun (object.h:500)
==226638== by 0x58E180C: ~object_base (object_core.hpp:423)
==226638== by 0x58E180C: ~object (object_core.hpp:238)
==226638== by 0x58E180C: ~iterator_range (iterator.hpp:41)
==226638== by 0x58E180C: boost::python::objects::value_holder<boost::python::objects::iterator_range<boost::python::return_internal_reference<1ul, boost::python::default_call_policies>, __gnu_cxx::__normal_iterator<ledger::post_t**, std::vector<ledger::post_t*, std::allocator<ledger::post_t*> > > > >::~value_holder() (value_holder.hpp:39)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:500)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:567)
==226638== by 0x5EF54A4: life_support_call (life_support.cpp:30)
==226638== by 0x28401A: _PyObject_MakeTpCall (call.c:215)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:112)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:184)
==226638== by 0x2A5D82: handle_callback.lto_priv.0 (weakrefobject.c:952)
==226638== Address 0x4ebe040 is 336 bytes inside a block of size 976 free'd
==226638== at 0x484671B: operator delete(void*) (vg_replace_malloc.c:923)
==226638== by 0x57F4C44: ~account_t (account.cc:50)
==226638== by 0x57F4C44: checked_delete<ledger::account_t> (checked_delete.hpp:36)
==226638== by 0x57F4C44: ledger::account_t::~account_t() (account.cc:47)
==226638== by 0x57F4DE8: ledger::account_t::~account_t() (account.cc:50)
==226638== by 0x57EB5B2: checked_delete<ledger::account_t> (checked_delete.hpp:36)
==226638== by 0x57EB5B2: ledger::journal_t::~journal_t() (journal.cc:82)
==226638== by 0x57BA7C1: operator() (unique_ptr.h:95)
==226638== by 0x57BA7C1: ~unique_ptr (unique_ptr.h:396)
==226638== by 0x57BA7C1: ledger::session_t::~session_t() (session.h:80)
==226638== by 0x58FC52B: boost::python::objects::value_holder<ledger::session_t>::~value_holder() (value_holder.hpp:39)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:500)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:567)
==226638== by 0x5EF54A4: life_support_call (life_support.cpp:30)
==226638== by 0x28401A: _PyObject_MakeTpCall (call.c:215)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:112)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:184)
==226638== by 0x2A5D82: handle_callback.lto_priv.0 (weakrefobject.c:952)
==226638== by 0x2A25E0: PyObject_ClearWeakRefs (weakrefobject.c:998)
==226638== Block was alloc'd at
==226638== at 0x4843F2F: operator new(unsigned long) (vg_replace_malloc.c:422)
==226638== by 0x57EF722: ledger::account_t::find_account(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) (account.cc:83)
==226638== by 0x57EC00F: ledger::journal_t::register_account(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, ledger::post_t*, ledger::account_t*) (journal.cc:128)
==226638== by 0x57D615C: ledger::(anonymous namespace)::instance_t::parse_post(char*, long, ledger::account_t*, ledger::xact_t*, bool) (textual.cc:1480)
==226638== by 0x57DF209: parse_xact (textual.cc:1941)
==226638== by 0x57DF209: xact_directive (textual.cc:707)
==226638== by 0x57DF209: ledger::(anonymous namespace)::instance_t::read_next_directive(bool&) (textual.cc:381)
==226638== by 0x57E02DA: ledger::(anonymous namespace)::instance_t::parse() (textual.cc:252)
==226638== by 0x57E06EB: ledger::journal_t::read_textual(ledger::parse_context_stack_t&) (textual.cc:2004)
==226638== by 0x57EA3FA: ledger::journal_t::read(ledger::parse_context_stack_t&) (journal.cc:472)
==226638== by 0x57B3C17: ledger::session_t::read_journal_from_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (session.cc:233)
==226638== by 0x58FBEB9: invoke<boost::python::to_python_indirect<ledger::journal_t*, boost::python::detail::make_reference_holder>, ledger::journal_t* (ledger::session_t::*)(const std::__cxx11::basic_string<char>&), boost::python::arg_from_python<ledger::session_t&>, boost::python::arg_from_python<const std::__cxx11::basic_string<char>&> > (invoke.hpp:86)
==226638== by 0x58FBEB9: operator() (caller.hpp:233)
==226638== by 0x58FBEB9: boost::python::objects::caller_py_function_impl<boost::python::detail::caller<ledger::journal_t* (ledger::session_t::*)(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&), boost::python::return_internal_reference<1ul, boost::python::default_call_policies>, boost::mpl::vector3<ledger::journal_t*, ledger::session_t&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&> > >::operator()(_object*, _object*) (py_function.hpp:38)
==226638== by 0x5EF145C: operator() (py_function.hpp:147)
==226638== by 0x5EF145C: boost::python::objects::function::call(_object*, _object*) const (function.cpp:221)
==226638== by 0x5EF1627: operator() (function.cpp:581)
==226638== by 0x5EF1627: boost::detail::function::void_function_ref_invoker0<boost::python::objects::(anonymous namespace)::bind_return, void>::invoke(boost::detail::function::function_buffer&) (function_template.hpp:193)
==226638==
==226638== Invalid read of size 8
==226638== at 0x57F0D16: begin (stl_tree.h:996)
==226638== by 0x57F0D16: begin (stl_map.h:367)
==226638== by 0x57F0D16: range_begin<std::map<std::__cxx11::basic_string<char>, ledger::account_t*> > (begin.hpp:45)
==226638== by 0x57F0D16: begin<std::map<std::__cxx11::basic_string<char>, ledger::account_t*> > (begin.hpp:103)
==226638== by 0x57F0D16: begin<std::map<std::__cxx11::basic_string<char>, ledger::account_t*>, mpl_::bool_<false> > (foreach.hpp:680)
==226638== by 0x57F0D16: ledger::account_t::clear_xdata() (account.cc:608)
==226638== by 0x57F0D54: ledger::account_t::clear_xdata() (account.cc:610)
==226638== by 0x58DFAF1: ~collector_wrapper (py_journal.cc:164)
==226638== by 0x58DFAF1: checked_delete<ledger::(anonymous namespace)::collector_wrapper> (checked_delete.hpp:36)
==226638== by 0x58DFAF1: checked_delete<ledger::(anonymous namespace)::collector_wrapper> (checked_delete.hpp:31)
==226638== by 0x58DFAF1: boost::detail::sp_counted_impl_p<ledger::(anonymous namespace)::collector_wrapper>::dispose() (sp_counted_impl.hpp:89)
==226638== by 0x58DC50C: UnknownInlinedFun (sp_counted_base_gcc_atomic.hpp:120)
==226638== by 0x58DC50C: UnknownInlinedFun (sp_counted_base_gcc_atomic.hpp:116)
==226638== by 0x58DC50C: ~shared_count (shared_count.hpp:432)
==226638== by 0x58DC50C: ~shared_ptr (shared_ptr.hpp:335)
==226638== by 0x58DC50C: boost::python::objects::pointer_holder<boost::shared_ptr<ledger::(anonymous namespace)::collector_wrapper>, ledger::(anonymous namespace)::collector_wrapper>::~pointer_holder() (pointer_holder.hpp:51)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x58E180C: UnknownInlinedFun (object.h:500)
==226638== by 0x58E180C: ~object_base (object_core.hpp:423)
==226638== by 0x58E180C: ~object (object_core.hpp:238)
==226638== by 0x58E180C: ~iterator_range (iterator.hpp:41)
==226638== by 0x58E180C: boost::python::objects::value_holder<boost::python::objects::iterator_range<boost::python::return_internal_reference<1ul, boost::python::default_call_policies>, __gnu_cxx::__normal_iterator<ledger::post_t**, std::vector<ledger::post_t*, std::allocator<ledger::post_t*> > > > >::~value_holder() (value_holder.hpp:39)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:500)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:567)
==226638== by 0x5EF54A4: life_support_call (life_support.cpp:30)
==226638== by 0x28401A: _PyObject_MakeTpCall (call.c:215)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:112)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:184)
==226638== by 0x2A5D82: handle_callback.lto_priv.0 (weakrefobject.c:952)
==226638== Address 0x4ebdf70 is 128 bytes inside a block of size 976 free'd
==226638== at 0x484671B: operator delete(void*) (vg_replace_malloc.c:923)
==226638== by 0x57F4C44: ~account_t (account.cc:50)
==226638== by 0x57F4C44: checked_delete<ledger::account_t> (checked_delete.hpp:36)
==226638== by 0x57F4C44: ledger::account_t::~account_t() (account.cc:47)
==226638== by 0x57F4DE8: ledger::account_t::~account_t() (account.cc:50)
==226638== by 0x57EB5B2: checked_delete<ledger::account_t> (checked_delete.hpp:36)
==226638== by 0x57EB5B2: ledger::journal_t::~journal_t() (journal.cc:82)
==226638== by 0x57BA7C1: operator() (unique_ptr.h:95)
==226638== by 0x57BA7C1: ~unique_ptr (unique_ptr.h:396)
==226638== by 0x57BA7C1: ledger::session_t::~session_t() (session.h:80)
==226638== by 0x58FC52B: boost::python::objects::value_holder<ledger::session_t>::~value_holder() (value_holder.hpp:39)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:500)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:567)
==226638== by 0x5EF54A4: life_support_call (life_support.cpp:30)
==226638== by 0x28401A: _PyObject_MakeTpCall (call.c:215)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:112)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:184)
==226638== by 0x2A5D82: handle_callback.lto_priv.0 (weakrefobject.c:952)
==226638== by 0x2A25E0: PyObject_ClearWeakRefs (weakrefobject.c:998)
==226638== Block was alloc'd at
==226638== at 0x4843F2F: operator new(unsigned long) (vg_replace_malloc.c:422)
==226638== by 0x57EF722: ledger::account_t::find_account(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) (account.cc:83)
==226638== by 0x57EC00F: ledger::journal_t::register_account(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, ledger::post_t*, ledger::account_t*) (journal.cc:128)
==226638== by 0x57D615C: ledger::(anonymous namespace)::instance_t::parse_post(char*, long, ledger::account_t*, ledger::xact_t*, bool) (textual.cc:1480)
==226638== by 0x57DF209: parse_xact (textual.cc:1941)
==226638== by 0x57DF209: xact_directive (textual.cc:707)
==226638== by 0x57DF209: ledger::(anonymous namespace)::instance_t::read_next_directive(bool&) (textual.cc:381)
==226638== by 0x57E02DA: ledger::(anonymous namespace)::instance_t::parse() (textual.cc:252)
==226638== by 0x57E06EB: ledger::journal_t::read_textual(ledger::parse_context_stack_t&) (textual.cc:2004)
==226638== by 0x57EA3FA: ledger::journal_t::read(ledger::parse_context_stack_t&) (journal.cc:472)
==226638== by 0x57B3C17: ledger::session_t::read_journal_from_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (session.cc:233)
==226638== by 0x58FBEB9: invoke<boost::python::to_python_indirect<ledger::journal_t*, boost::python::detail::make_reference_holder>, ledger::journal_t* (ledger::session_t::*)(const std::__cxx11::basic_string<char>&), boost::python::arg_from_python<ledger::session_t&>, boost::python::arg_from_python<const std::__cxx11::basic_string<char>&> > (invoke.hpp:86)
==226638== by 0x58FBEB9: operator() (caller.hpp:233)
==226638== by 0x58FBEB9: boost::python::objects::caller_py_function_impl<boost::python::detail::caller<ledger::journal_t* (ledger::session_t::*)(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&), boost::python::return_internal_reference<1ul, boost::python::default_call_policies>, boost::mpl::vector3<ledger::journal_t*, ledger::session_t&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&> > >::operator()(_object*, _object*) (py_function.hpp:38)
==226638== by 0x5EF145C: operator() (py_function.hpp:147)
==226638== by 0x5EF145C: boost::python::objects::function::call(_object*, _object*) const (function.cpp:221)
==226638== by 0x5EF1627: operator() (function.cpp:581)
==226638== by 0x5EF1627: boost::detail::function::void_function_ref_invoker0<boost::python::objects::(anonymous namespace)::bind_return, void>::invoke(boost::detail::function::function_buffer&) (function_template.hpp:193)
==226638==
==226638== Invalid read of size 8
==226638== at 0x67A0BD4: std::_Rb_tree_increment(std::_Rb_tree_node_base*) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
==226638== by 0x57F0D37: operator++ (stl_tree.h:287)
==226638== by 0x57F0D37: next<std::map<std::__cxx11::basic_string<char>, ledger::account_t*>, mpl_::bool_<false> > (foreach.hpp:767)
==226638== by 0x57F0D37: ledger::account_t::clear_xdata() (account.cc:608)
==226638== by 0x58DFAF1: ~collector_wrapper (py_journal.cc:164)
==226638== by 0x58DFAF1: checked_delete<ledger::(anonymous namespace)::collector_wrapper> (checked_delete.hpp:36)
==226638== by 0x58DFAF1: checked_delete<ledger::(anonymous namespace)::collector_wrapper> (checked_delete.hpp:31)
==226638== by 0x58DFAF1: boost::detail::sp_counted_impl_p<ledger::(anonymous namespace)::collector_wrapper>::dispose() (sp_counted_impl.hpp:89)
==226638== by 0x58DC50C: UnknownInlinedFun (sp_counted_base_gcc_atomic.hpp:120)
==226638== by 0x58DC50C: UnknownInlinedFun (sp_counted_base_gcc_atomic.hpp:116)
==226638== by 0x58DC50C: ~shared_count (shared_count.hpp:432)
==226638== by 0x58DC50C: ~shared_ptr (shared_ptr.hpp:335)
==226638== by 0x58DC50C: boost::python::objects::pointer_holder<boost::shared_ptr<ledger::(anonymous namespace)::collector_wrapper>, ledger::(anonymous namespace)::collector_wrapper>::~pointer_holder() (pointer_holder.hpp:51)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x58E180C: UnknownInlinedFun (object.h:500)
==226638== by 0x58E180C: ~object_base (object_core.hpp:423)
==226638== by 0x58E180C: ~object (object_core.hpp:238)
==226638== by 0x58E180C: ~iterator_range (iterator.hpp:41)
==226638== by 0x58E180C: boost::python::objects::value_holder<boost::python::objects::iterator_range<boost::python::return_internal_reference<1ul, boost::python::default_call_policies>, __gnu_cxx::__normal_iterator<ledger::post_t**, std::vector<ledger::post_t*, std::allocator<ledger::post_t*> > > > >::~value_holder() (value_holder.hpp:39)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:500)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:567)
==226638== by 0x5EF54A4: life_support_call (life_support.cpp:30)
==226638== by 0x28401A: _PyObject_MakeTpCall (call.c:215)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:112)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:184)
==226638== by 0x2A5D82: handle_callback.lto_priv.0 (weakrefobject.c:952)
==226638== Address 0x4ebe318 is 24 bytes inside a block of size 72 free'd
==226638== at 0x484671B: operator delete(void*) (vg_replace_malloc.c:923)
==226638== by 0x57F4D47: deallocate (new_allocator.h:158)
==226638== by 0x57F4D47: deallocate (alloc_traits.h:496)
==226638== by 0x57F4D47: _M_put_node (stl_tree.h:565)
==226638== by 0x57F4D47: _M_drop_node (stl_tree.h:632)
==226638== by 0x57F4D47: _M_erase (stl_tree.h:1937)
==226638== by 0x57F4D47: ~_Rb_tree (stl_tree.h:984)
==226638== by 0x57F4D47: ~map (stl_map.h:312)
==226638== by 0x57F4D47: ledger::account_t::~account_t() (account.cc:50)
==226638== by 0x57F4DE8: ledger::account_t::~account_t() (account.cc:50)
==226638== by 0x57EB5B2: checked_delete<ledger::account_t> (checked_delete.hpp:36)
==226638== by 0x57EB5B2: ledger::journal_t::~journal_t() (journal.cc:82)
==226638== by 0x57BA7C1: operator() (unique_ptr.h:95)
==226638== by 0x57BA7C1: ~unique_ptr (unique_ptr.h:396)
==226638== by 0x57BA7C1: ledger::session_t::~session_t() (session.h:80)
==226638== by 0x58FC52B: boost::python::objects::value_holder<ledger::session_t>::~value_holder() (value_holder.hpp:39)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:500)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:567)
==226638== by 0x5EF54A4: life_support_call (life_support.cpp:30)
==226638== by 0x28401A: _PyObject_MakeTpCall (call.c:215)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:112)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:184)
==226638== by 0x2A5D82: handle_callback.lto_priv.0 (weakrefobject.c:952)
==226638== by 0x2A25E0: PyObject_ClearWeakRefs (weakrefobject.c:998)
==226638== Block was alloc'd at
==226638== at 0x4843F2F: operator new(unsigned long) (vg_replace_malloc.c:422)
==226638== by 0x57E1F6A: allocate (new_allocator.h:137)
==226638== by 0x57E1F6A: allocate (alloc_traits.h:464)
==226638== by 0x57E1F6A: _M_get_node (stl_tree.h:561)
==226638== by 0x57E1F6A: _M_create_node<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, ledger::account_t*> > (stl_tree.h:611)
==226638== by 0x57E1F6A: operator()<std::pair<const std::__cxx11::basic_string<char>, ledger::account_t*> > (stl_tree.h:529)
==226638== by 0x57E1F6A: _M_insert_<std::pair<const std::__cxx11::basic_string<char>, ledger::account_t*>, std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, ledger::account_t*>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, ledger::account_t*> >, std::less<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, ledger::account_t*> > >::_Alloc_node> (stl_tree.h:1830)
==226638== by 0x57E1F6A: std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ledger::account_t*> >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ledger::account_t*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ledger::account_t*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ledger::account_t*> > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ledger::account_t*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ledger::account_t*>&&) (stl_tree.h:2175)
==226638== by 0x57EF853: insert (stl_map.h:841)
==226638== by 0x57EF853: ledger::account_t::find_account(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) (account.cc:95)
==226638== by 0x57EC00F: ledger::journal_t::register_account(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, ledger::post_t*, ledger::account_t*) (journal.cc:128)
==226638== by 0x57D615C: ledger::(anonymous namespace)::instance_t::parse_post(char*, long, ledger::account_t*, ledger::xact_t*, bool) (textual.cc:1480)
==226638== by 0x57DF209: parse_xact (textual.cc:1941)
==226638== by 0x57DF209: xact_directive (textual.cc:707)
==226638== by 0x57DF209: ledger::(anonymous namespace)::instance_t::read_next_directive(bool&) (textual.cc:381)
==226638== by 0x57E02DA: ledger::(anonymous namespace)::instance_t::parse() (textual.cc:252)
==226638== by 0x57E06EB: ledger::journal_t::read_textual(ledger::parse_context_stack_t&) (textual.cc:2004)
==226638== by 0x57EA3FA: ledger::journal_t::read(ledger::parse_context_stack_t&) (journal.cc:472)
==226638== by 0x57B3C17: ledger::session_t::read_journal_from_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (session.cc:233)
==226638== by 0x58FBEB9: invoke<boost::python::to_python_indirect<ledger::journal_t*, boost::python::detail::make_reference_holder>, ledger::journal_t* (ledger::session_t::*)(const std::__cxx11::basic_string<char>&), boost::python::arg_from_python<ledger::session_t&>, boost::python::arg_from_python<const std::__cxx11::basic_string<char>&> > (invoke.hpp:86)
==226638== by 0x58FBEB9: operator() (caller.hpp:233)
==226638== by 0x58FBEB9: boost::python::objects::caller_py_function_impl<boost::python::detail::caller<ledger::journal_t* (ledger::session_t::*)(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&), boost::python::return_internal_reference<1ul, boost::python::default_call_policies>, boost::mpl::vector3<ledger::journal_t*, ledger::session_t&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&> > >::operator()(_object*, _object*) (py_function.hpp:38)
==226638== by 0x5EF145C: operator() (py_function.hpp:147)
==226638== by 0x5EF145C: boost::python::objects::function::call(_object*, _object*) const (function.cpp:221)
==226638==
==226638== Invalid read of size 8
==226638== at 0x67A0BE3: std::_Rb_tree_increment(std::_Rb_tree_node_base*) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
==226638== by 0x57F0D37: operator++ (stl_tree.h:287)
==226638== by 0x57F0D37: next<std::map<std::__cxx11::basic_string<char>, ledger::account_t*>, mpl_::bool_<false> > (foreach.hpp:767)
==226638== by 0x57F0D37: ledger::account_t::clear_xdata() (account.cc:608)
==226638== by 0x58DFAF1: ~collector_wrapper (py_journal.cc:164)
==226638== by 0x58DFAF1: checked_delete<ledger::(anonymous namespace)::collector_wrapper> (checked_delete.hpp:36)
==226638== by 0x58DFAF1: checked_delete<ledger::(anonymous namespace)::collector_wrapper> (checked_delete.hpp:31)
==226638== by 0x58DFAF1: boost::detail::sp_counted_impl_p<ledger::(anonymous namespace)::collector_wrapper>::dispose() (sp_counted_impl.hpp:89)
==226638== by 0x58DC50C: UnknownInlinedFun (sp_counted_base_gcc_atomic.hpp:120)
==226638== by 0x58DC50C: UnknownInlinedFun (sp_counted_base_gcc_atomic.hpp:116)
==226638== by 0x58DC50C: ~shared_count (shared_count.hpp:432)
==226638== by 0x58DC50C: ~shared_ptr (shared_ptr.hpp:335)
==226638== by 0x58DC50C: boost::python::objects::pointer_holder<boost::shared_ptr<ledger::(anonymous namespace)::collector_wrapper>, ledger::(anonymous namespace)::collector_wrapper>::~pointer_holder() (pointer_holder.hpp:51)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x58E180C: UnknownInlinedFun (object.h:500)
==226638== by 0x58E180C: ~object_base (object_core.hpp:423)
==226638== by 0x58E180C: ~object (object_core.hpp:238)
==226638== by 0x58E180C: ~iterator_range (iterator.hpp:41)
==226638== by 0x58E180C: boost::python::objects::value_holder<boost::python::objects::iterator_range<boost::python::return_internal_reference<1ul, boost::python::default_call_policies>, __gnu_cxx::__normal_iterator<ledger::post_t**, std::vector<ledger::post_t*, std::allocator<ledger::post_t*> > > > >::~value_holder() (value_holder.hpp:39)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:500)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:567)
==226638== by 0x5EF54A4: life_support_call (life_support.cpp:30)
==226638== by 0x28401A: _PyObject_MakeTpCall (call.c:215)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:112)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:184)
==226638== by 0x2A5D82: handle_callback.lto_priv.0 (weakrefobject.c:952)
==226638== Address 0x4ebef00 is 16 bytes inside a block of size 72 free'd
==226638== at 0x484671B: operator delete(void*) (vg_replace_malloc.c:923)
==226638== by 0x57EE28E: deallocate (new_allocator.h:158)
==226638== by 0x57EE28E: deallocate (alloc_traits.h:496)
==226638== by 0x57EE28E: _M_put_node (stl_tree.h:565)
==226638== by 0x57EE28E: _M_drop_node (stl_tree.h:632)
==226638== by 0x57EE28E: std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ledger::account_t*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ledger::account_t*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ledger::account_t*> > >::_M_erase(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ledger::account_t*> >*) [clone .isra.0] (stl_tree.h:1937)
==226638== by 0x57F4D12: _M_erase (stl_tree.h:1935)
==226638== by 0x57F4D12: ~_Rb_tree (stl_tree.h:984)
==226638== by 0x57F4D12: ~map (stl_map.h:312)
==226638== by 0x57F4D12: ledger::account_t::~account_t() (account.cc:50)
==226638== by 0x57F4DE8: ledger::account_t::~account_t() (account.cc:50)
==226638== by 0x57EB5B2: checked_delete<ledger::account_t> (checked_delete.hpp:36)
==226638== by 0x57EB5B2: ledger::journal_t::~journal_t() (journal.cc:82)
==226638== by 0x57BA7C1: operator() (unique_ptr.h:95)
==226638== by 0x57BA7C1: ~unique_ptr (unique_ptr.h:396)
==226638== by 0x57BA7C1: ledger::session_t::~session_t() (session.h:80)
==226638== by 0x58FC52B: boost::python::objects::value_holder<ledger::session_t>::~value_holder() (value_holder.hpp:39)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:500)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:567)
==226638== by 0x5EF54A4: life_support_call (life_support.cpp:30)
==226638== by 0x28401A: _PyObject_MakeTpCall (call.c:215)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:112)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:184)
==226638== by 0x2A5D82: handle_callback.lto_priv.0 (weakrefobject.c:952)
==226638== Block was alloc'd at
==226638== at 0x4843F2F: operator new(unsigned long) (vg_replace_malloc.c:422)
==226638== by 0x57E1F6A: allocate (new_allocator.h:137)
==226638== by 0x57E1F6A: allocate (alloc_traits.h:464)
==226638== by 0x57E1F6A: _M_get_node (stl_tree.h:561)
==226638== by 0x57E1F6A: _M_create_node<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, ledger::account_t*> > (stl_tree.h:611)
==226638== by 0x57E1F6A: operator()<std::pair<const std::__cxx11::basic_string<char>, ledger::account_t*> > (stl_tree.h:529)
==226638== by 0x57E1F6A: _M_insert_<std::pair<const std::__cxx11::basic_string<char>, ledger::account_t*>, std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, ledger::account_t*>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, ledger::account_t*> >, std::less<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, ledger::account_t*> > >::_Alloc_node> (stl_tree.h:1830)
==226638== by 0x57E1F6A: std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ledger::account_t*> >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ledger::account_t*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ledger::account_t*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ledger::account_t*> > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ledger::account_t*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ledger::account_t*>&&) (stl_tree.h:2175)
==226638== by 0x57EF853: insert (stl_map.h:841)
==226638== by 0x57EF853: ledger::account_t::find_account(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) (account.cc:95)
==226638== by 0x57EC00F: ledger::journal_t::register_account(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, ledger::post_t*, ledger::account_t*) (journal.cc:128)
==226638== by 0x57D615C: ledger::(anonymous namespace)::instance_t::parse_post(char*, long, ledger::account_t*, ledger::xact_t*, bool) (textual.cc:1480)
==226638== by 0x57DF209: parse_xact (textual.cc:1941)
==226638== by 0x57DF209: xact_directive (textual.cc:707)
==226638== by 0x57DF209: ledger::(anonymous namespace)::instance_t::read_next_directive(bool&) (textual.cc:381)
==226638== by 0x57E02DA: ledger::(anonymous namespace)::instance_t::parse() (textual.cc:252)
==226638== by 0x57E06EB: ledger::journal_t::read_textual(ledger::parse_context_stack_t&) (textual.cc:2004)
==226638== by 0x57EA3FA: ledger::journal_t::read(ledger::parse_context_stack_t&) (journal.cc:472)
==226638== by 0x57B3C17: ledger::session_t::read_journal_from_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (session.cc:233)
==226638== by 0x58FBEB9: invoke<boost::python::to_python_indirect<ledger::journal_t*, boost::python::detail::make_reference_holder>, ledger::journal_t* (ledger::session_t::*)(const std::__cxx11::basic_string<char>&), boost::python::arg_from_python<ledger::session_t&>, boost::python::arg_from_python<const std::__cxx11::basic_string<char>&> > (invoke.hpp:86)
==226638== by 0x58FBEB9: operator() (caller.hpp:233)
==226638== by 0x58FBEB9: boost::python::objects::caller_py_function_impl<boost::python::detail::caller<ledger::journal_t* (ledger::session_t::*)(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&), boost::python::return_internal_reference<1ul, boost::python::default_call_policies>, boost::mpl::vector3<ledger::journal_t*, ledger::session_t&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&> > >::operator()(_object*, _object*) (py_function.hpp:38)
==226638== by 0x5EF145C: operator() (py_function.hpp:147)
==226638== by 0x5EF145C: boost::python::objects::function::call(_object*, _object*) const (function.cpp:221)
==226638==
==226638== Invalid read of size 8
==226638== at 0x67A0BF0: std::_Rb_tree_increment(std::_Rb_tree_node_base*) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
==226638== by 0x57F0D37: operator++ (stl_tree.h:287)
==226638== by 0x57F0D37: next<std::map<std::__cxx11::basic_string<char>, ledger::account_t*>, mpl_::bool_<false> > (foreach.hpp:767)
==226638== by 0x57F0D37: ledger::account_t::clear_xdata() (account.cc:608)
==226638== by 0x58DFAF1: ~collector_wrapper (py_journal.cc:164)
==226638== by 0x58DFAF1: checked_delete<ledger::(anonymous namespace)::collector_wrapper> (checked_delete.hpp:36)
==226638== by 0x58DFAF1: checked_delete<ledger::(anonymous namespace)::collector_wrapper> (checked_delete.hpp:31)
==226638== by 0x58DFAF1: boost::detail::sp_counted_impl_p<ledger::(anonymous namespace)::collector_wrapper>::dispose() (sp_counted_impl.hpp:89)
==226638== by 0x58DC50C: UnknownInlinedFun (sp_counted_base_gcc_atomic.hpp:120)
==226638== by 0x58DC50C: UnknownInlinedFun (sp_counted_base_gcc_atomic.hpp:116)
==226638== by 0x58DC50C: ~shared_count (shared_count.hpp:432)
==226638== by 0x58DC50C: ~shared_ptr (shared_ptr.hpp:335)
==226638== by 0x58DC50C: boost::python::objects::pointer_holder<boost::shared_ptr<ledger::(anonymous namespace)::collector_wrapper>, ledger::(anonymous namespace)::collector_wrapper>::~pointer_holder() (pointer_holder.hpp:51)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x58E180C: UnknownInlinedFun (object.h:500)
==226638== by 0x58E180C: ~object_base (object_core.hpp:423)
==226638== by 0x58E180C: ~object (object_core.hpp:238)
==226638== by 0x58E180C: ~iterator_range (iterator.hpp:41)
==226638== by 0x58E180C: boost::python::objects::value_holder<boost::python::objects::iterator_range<boost::python::return_internal_reference<1ul, boost::python::default_call_policies>, __gnu_cxx::__normal_iterator<ledger::post_t**, std::vector<ledger::post_t*, std::allocator<ledger::post_t*> > > > >::~value_holder() (value_holder.hpp:39)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:500)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:567)
==226638== by 0x5EF54A4: life_support_call (life_support.cpp:30)
==226638== by 0x28401A: _PyObject_MakeTpCall (call.c:215)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:112)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:184)
==226638== by 0x2A5D82: handle_callback.lto_priv.0 (weakrefobject.c:952)
==226638== Address 0x4ebeef8 is 8 bytes inside a block of size 72 free'd
==226638== at 0x484671B: operator delete(void*) (vg_replace_malloc.c:923)
==226638== by 0x57EE28E: deallocate (new_allocator.h:158)
==226638== by 0x57EE28E: deallocate (alloc_traits.h:496)
==226638== by 0x57EE28E: _M_put_node (stl_tree.h:565)
==226638== by 0x57EE28E: _M_drop_node (stl_tree.h:632)
==226638== by 0x57EE28E: std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ledger::account_t*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ledger::account_t*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ledger::account_t*> > >::_M_erase(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ledger::account_t*> >*) [clone .isra.0] (stl_tree.h:1937)
==226638== by 0x57F4D12: _M_erase (stl_tree.h:1935)
==226638== by 0x57F4D12: ~_Rb_tree (stl_tree.h:984)
==226638== by 0x57F4D12: ~map (stl_map.h:312)
==226638== by 0x57F4D12: ledger::account_t::~account_t() (account.cc:50)
==226638== by 0x57F4DE8: ledger::account_t::~account_t() (account.cc:50)
==226638== by 0x57EB5B2: checked_delete<ledger::account_t> (checked_delete.hpp:36)
==226638== by 0x57EB5B2: ledger::journal_t::~journal_t() (journal.cc:82)
==226638== by 0x57BA7C1: operator() (unique_ptr.h:95)
==226638== by 0x57BA7C1: ~unique_ptr (unique_ptr.h:396)
==226638== by 0x57BA7C1: ledger::session_t::~session_t() (session.h:80)
==226638== by 0x58FC52B: boost::python::objects::value_holder<ledger::session_t>::~value_holder() (value_holder.hpp:39)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:500)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:567)
==226638== by 0x5EF54A4: life_support_call (life_support.cpp:30)
==226638== by 0x28401A: _PyObject_MakeTpCall (call.c:215)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:112)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:184)
==226638== by 0x2A5D82: handle_callback.lto_priv.0 (weakrefobject.c:952)
==226638== Block was alloc'd at
==226638== at 0x4843F2F: operator new(unsigned long) (vg_replace_malloc.c:422)
==226638== by 0x57E1F6A: allocate (new_allocator.h:137)
==226638== by 0x57E1F6A: allocate (alloc_traits.h:464)
==226638== by 0x57E1F6A: _M_get_node (stl_tree.h:561)
==226638== by 0x57E1F6A: _M_create_node<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, ledger::account_t*> > (stl_tree.h:611)
==226638== by 0x57E1F6A: operator()<std::pair<const std::__cxx11::basic_string<char>, ledger::account_t*> > (stl_tree.h:529)
==226638== by 0x57E1F6A: _M_insert_<std::pair<const std::__cxx11::basic_string<char>, ledger::account_t*>, std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, ledger::account_t*>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, ledger::account_t*> >, std::less<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, ledger::account_t*> > >::_Alloc_node> (stl_tree.h:1830)
==226638== by 0x57E1F6A: std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ledger::account_t*> >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ledger::account_t*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ledger::account_t*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ledger::account_t*> > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ledger::account_t*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ledger::account_t*>&&) (stl_tree.h:2175)
==226638== by 0x57EF853: insert (stl_map.h:841)
==226638== by 0x57EF853: ledger::account_t::find_account(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) (account.cc:95)
==226638== by 0x57EC00F: ledger::journal_t::register_account(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, ledger::post_t*, ledger::account_t*) (journal.cc:128)
==226638== by 0x57D615C: ledger::(anonymous namespace)::instance_t::parse_post(char*, long, ledger::account_t*, ledger::xact_t*, bool) (textual.cc:1480)
==226638== by 0x57DF209: parse_xact (textual.cc:1941)
==226638== by 0x57DF209: xact_directive (textual.cc:707)
==226638== by 0x57DF209: ledger::(anonymous namespace)::instance_t::read_next_directive(bool&) (textual.cc:381)
==226638== by 0x57E02DA: ledger::(anonymous namespace)::instance_t::parse() (textual.cc:252)
==226638== by 0x57E06EB: ledger::journal_t::read_textual(ledger::parse_context_stack_t&) (textual.cc:2004)
==226638== by 0x57EA3FA: ledger::journal_t::read(ledger::parse_context_stack_t&) (journal.cc:472)
==226638== by 0x57B3C17: ledger::session_t::read_journal_from_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (session.cc:233)
==226638== by 0x58FBEB9: invoke<boost::python::to_python_indirect<ledger::journal_t*, boost::python::detail::make_reference_holder>, ledger::journal_t* (ledger::session_t::*)(const std::__cxx11::basic_string<char>&), boost::python::arg_from_python<ledger::session_t&>, boost::python::arg_from_python<const std::__cxx11::basic_string<char>&> > (invoke.hpp:86)
==226638== by 0x58FBEB9: operator() (caller.hpp:233)
==226638== by 0x58FBEB9: boost::python::objects::caller_py_function_impl<boost::python::detail::caller<ledger::journal_t* (ledger::session_t::*)(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&), boost::python::return_internal_reference<1ul, boost::python::default_call_policies>, boost::mpl::vector3<ledger::journal_t*, ledger::session_t&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&> > >::operator()(_object*, _object*) (py_function.hpp:38)
==226638== by 0x5EF145C: operator() (py_function.hpp:147)
==226638== by 0x5EF145C: boost::python::objects::function::call(_object*, _object*) const (function.cpp:221)
==226638==
==226638== Invalid read of size 8
==226638== at 0x67A0BF4: std::_Rb_tree_increment(std::_Rb_tree_node_base*) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
==226638== by 0x57F0D37: operator++ (stl_tree.h:287)
==226638== by 0x57F0D37: next<std::map<std::__cxx11::basic_string<char>, ledger::account_t*>, mpl_::bool_<false> > (foreach.hpp:767)
==226638== by 0x57F0D37: ledger::account_t::clear_xdata() (account.cc:608)
==226638== by 0x58DFAF1: ~collector_wrapper (py_journal.cc:164)
==226638== by 0x58DFAF1: checked_delete<ledger::(anonymous namespace)::collector_wrapper> (checked_delete.hpp:36)
==226638== by 0x58DFAF1: checked_delete<ledger::(anonymous namespace)::collector_wrapper> (checked_delete.hpp:31)
==226638== by 0x58DFAF1: boost::detail::sp_counted_impl_p<ledger::(anonymous namespace)::collector_wrapper>::dispose() (sp_counted_impl.hpp:89)
==226638== by 0x58DC50C: UnknownInlinedFun (sp_counted_base_gcc_atomic.hpp:120)
==226638== by 0x58DC50C: UnknownInlinedFun (sp_counted_base_gcc_atomic.hpp:116)
==226638== by 0x58DC50C: ~shared_count (shared_count.hpp:432)
==226638== by 0x58DC50C: ~shared_ptr (shared_ptr.hpp:335)
==226638== by 0x58DC50C: boost::python::objects::pointer_holder<boost::shared_ptr<ledger::(anonymous namespace)::collector_wrapper>, ledger::(anonymous namespace)::collector_wrapper>::~pointer_holder() (pointer_holder.hpp:51)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x58E180C: UnknownInlinedFun (object.h:500)
==226638== by 0x58E180C: ~object_base (object_core.hpp:423)
==226638== by 0x58E180C: ~object (object_core.hpp:238)
==226638== by 0x58E180C: ~iterator_range (iterator.hpp:41)
==226638== by 0x58E180C: boost::python::objects::value_holder<boost::python::objects::iterator_range<boost::python::return_internal_reference<1ul, boost::python::default_call_policies>, __gnu_cxx::__normal_iterator<ledger::post_t**, std::vector<ledger::post_t*, std::allocator<ledger::post_t*> > > > >::~value_holder() (value_holder.hpp:39)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:500)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:567)
==226638== by 0x5EF54A4: life_support_call (life_support.cpp:30)
==226638== by 0x28401A: _PyObject_MakeTpCall (call.c:215)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:112)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:184)
==226638== by 0x2A5D82: handle_callback.lto_priv.0 (weakrefobject.c:952)
==226638== Address 0x4ebe318 is 24 bytes inside a block of size 72 free'd
==226638== at 0x484671B: operator delete(void*) (vg_replace_malloc.c:923)
==226638== by 0x57F4D47: deallocate (new_allocator.h:158)
==226638== by 0x57F4D47: deallocate (alloc_traits.h:496)
==226638== by 0x57F4D47: _M_put_node (stl_tree.h:565)
==226638== by 0x57F4D47: _M_drop_node (stl_tree.h:632)
==226638== by 0x57F4D47: _M_erase (stl_tree.h:1937)
==226638== by 0x57F4D47: ~_Rb_tree (stl_tree.h:984)
==226638== by 0x57F4D47: ~map (stl_map.h:312)
==226638== by 0x57F4D47: ledger::account_t::~account_t() (account.cc:50)
==226638== by 0x57F4DE8: ledger::account_t::~account_t() (account.cc:50)
==226638== by 0x57EB5B2: checked_delete<ledger::account_t> (checked_delete.hpp:36)
==226638== by 0x57EB5B2: ledger::journal_t::~journal_t() (journal.cc:82)
==226638== by 0x57BA7C1: operator() (unique_ptr.h:95)
==226638== by 0x57BA7C1: ~unique_ptr (unique_ptr.h:396)
==226638== by 0x57BA7C1: ledger::session_t::~session_t() (session.h:80)
==226638== by 0x58FC52B: boost::python::objects::value_holder<ledger::session_t>::~value_holder() (value_holder.hpp:39)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:500)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:567)
==226638== by 0x5EF54A4: life_support_call (life_support.cpp:30)
==226638== by 0x28401A: _PyObject_MakeTpCall (call.c:215)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:112)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:184)
==226638== by 0x2A5D82: handle_callback.lto_priv.0 (weakrefobject.c:952)
==226638== by 0x2A25E0: PyObject_ClearWeakRefs (weakrefobject.c:998)
==226638== Block was alloc'd at
==226638== at 0x4843F2F: operator new(unsigned long) (vg_replace_malloc.c:422)
==226638== by 0x57E1F6A: allocate (new_allocator.h:137)
==226638== by 0x57E1F6A: allocate (alloc_traits.h:464)
==226638== by 0x57E1F6A: _M_get_node (stl_tree.h:561)
==226638== by 0x57E1F6A: _M_create_node<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, ledger::account_t*> > (stl_tree.h:611)
==226638== by 0x57E1F6A: operator()<std::pair<const std::__cxx11::basic_string<char>, ledger::account_t*> > (stl_tree.h:529)
==226638== by 0x57E1F6A: _M_insert_<std::pair<const std::__cxx11::basic_string<char>, ledger::account_t*>, std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, ledger::account_t*>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, ledger::account_t*> >, std::less<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, ledger::account_t*> > >::_Alloc_node> (stl_tree.h:1830)
==226638== by 0x57E1F6A: std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ledger::account_t*> >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ledger::account_t*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ledger::account_t*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ledger::account_t*> > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ledger::account_t*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ledger::account_t*>&&) (stl_tree.h:2175)
==226638== by 0x57EF853: insert (stl_map.h:841)
==226638== by 0x57EF853: ledger::account_t::find_account(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) (account.cc:95)
==226638== by 0x57EC00F: ledger::journal_t::register_account(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, ledger::post_t*, ledger::account_t*) (journal.cc:128)
==226638== by 0x57D615C: ledger::(anonymous namespace)::instance_t::parse_post(char*, long, ledger::account_t*, ledger::xact_t*, bool) (textual.cc:1480)
==226638== by 0x57DF209: parse_xact (textual.cc:1941)
==226638== by 0x57DF209: xact_directive (textual.cc:707)
==226638== by 0x57DF209: ledger::(anonymous namespace)::instance_t::read_next_directive(bool&) (textual.cc:381)
==226638== by 0x57E02DA: ledger::(anonymous namespace)::instance_t::parse() (textual.cc:252)
==226638== by 0x57E06EB: ledger::journal_t::read_textual(ledger::parse_context_stack_t&) (textual.cc:2004)
==226638== by 0x57EA3FA: ledger::journal_t::read(ledger::parse_context_stack_t&) (journal.cc:472)
==226638== by 0x57B3C17: ledger::session_t::read_journal_from_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (session.cc:233)
==226638== by 0x58FBEB9: invoke<boost::python::to_python_indirect<ledger::journal_t*, boost::python::detail::make_reference_holder>, ledger::journal_t* (ledger::session_t::*)(const std::__cxx11::basic_string<char>&), boost::python::arg_from_python<ledger::session_t&>, boost::python::arg_from_python<const std::__cxx11::basic_string<char>&> > (invoke.hpp:86)
==226638== by 0x58FBEB9: operator() (caller.hpp:233)
==226638== by 0x58FBEB9: boost::python::objects::caller_py_function_impl<boost::python::detail::caller<ledger::journal_t* (ledger::session_t::*)(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&), boost::python::return_internal_reference<1ul, boost::python::default_call_policies>, boost::mpl::vector3<ledger::journal_t*, ledger::session_t&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&> > >::operator()(_object*, _object*) (py_function.hpp:38)
==226638== by 0x5EF145C: operator() (py_function.hpp:147)
==226638== by 0x5EF145C: boost::python::objects::function::call(_object*, _object*) const (function.cpp:221)
==226638==
==226638== Invalid read of size 8
==226638== at 0x67A0C03: std::_Rb_tree_increment(std::_Rb_tree_node_base*) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
==226638== by 0x57F0D37: operator++ (stl_tree.h:287)
==226638== by 0x57F0D37: next<std::map<std::__cxx11::basic_string<char>, ledger::account_t*>, mpl_::bool_<false> > (foreach.hpp:767)
==226638== by 0x57F0D37: ledger::account_t::clear_xdata() (account.cc:608)
==226638== by 0x58DFAF1: ~collector_wrapper (py_journal.cc:164)
==226638== by 0x58DFAF1: checked_delete<ledger::(anonymous namespace)::collector_wrapper> (checked_delete.hpp:36)
==226638== by 0x58DFAF1: checked_delete<ledger::(anonymous namespace)::collector_wrapper> (checked_delete.hpp:31)
==226638== by 0x58DFAF1: boost::detail::sp_counted_impl_p<ledger::(anonymous namespace)::collector_wrapper>::dispose() (sp_counted_impl.hpp:89)
==226638== by 0x58DC50C: UnknownInlinedFun (sp_counted_base_gcc_atomic.hpp:120)
==226638== by 0x58DC50C: UnknownInlinedFun (sp_counted_base_gcc_atomic.hpp:116)
==226638== by 0x58DC50C: ~shared_count (shared_count.hpp:432)
==226638== by 0x58DC50C: ~shared_ptr (shared_ptr.hpp:335)
==226638== by 0x58DC50C: boost::python::objects::pointer_holder<boost::shared_ptr<ledger::(anonymous namespace)::collector_wrapper>, ledger::(anonymous namespace)::collector_wrapper>::~pointer_holder() (pointer_holder.hpp:51)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x58E180C: UnknownInlinedFun (object.h:500)
==226638== by 0x58E180C: ~object_base (object_core.hpp:423)
==226638== by 0x58E180C: ~object (object_core.hpp:238)
==226638== by 0x58E180C: ~iterator_range (iterator.hpp:41)
==226638== by 0x58E180C: boost::python::objects::value_holder<boost::python::objects::iterator_range<boost::python::return_internal_reference<1ul, boost::python::default_call_policies>, __gnu_cxx::__normal_iterator<ledger::post_t**, std::vector<ledger::post_t*, std::allocator<ledger::post_t*> > > > >::~value_holder() (value_holder.hpp:39)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:500)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:567)
==226638== by 0x5EF54A4: life_support_call (life_support.cpp:30)
==226638== by 0x28401A: _PyObject_MakeTpCall (call.c:215)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:112)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:184)
==226638== by 0x2A5D82: handle_callback.lto_priv.0 (weakrefobject.c:952)
==226638== Address 0x4ebe308 is 8 bytes inside a block of size 72 free'd
==226638== at 0x484671B: operator delete(void*) (vg_replace_malloc.c:923)
==226638== by 0x57F4D47: deallocate (new_allocator.h:158)
==226638== by 0x57F4D47: deallocate (alloc_traits.h:496)
==226638== by 0x57F4D47: _M_put_node (stl_tree.h:565)
==226638== by 0x57F4D47: _M_drop_node (stl_tree.h:632)
==226638== by 0x57F4D47: _M_erase (stl_tree.h:1937)
==226638== by 0x57F4D47: ~_Rb_tree (stl_tree.h:984)
==226638== by 0x57F4D47: ~map (stl_map.h:312)
==226638== by 0x57F4D47: ledger::account_t::~account_t() (account.cc:50)
==226638== by 0x57F4DE8: ledger::account_t::~account_t() (account.cc:50)
==226638== by 0x57EB5B2: checked_delete<ledger::account_t> (checked_delete.hpp:36)
==226638== by 0x57EB5B2: ledger::journal_t::~journal_t() (journal.cc:82)
==226638== by 0x57BA7C1: operator() (unique_ptr.h:95)
==226638== by 0x57BA7C1: ~unique_ptr (unique_ptr.h:396)
==226638== by 0x57BA7C1: ledger::session_t::~session_t() (session.h:80)
==226638== by 0x58FC52B: boost::python::objects::value_holder<ledger::session_t>::~value_holder() (value_holder.hpp:39)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:500)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:567)
==226638== by 0x5EF54A4: life_support_call (life_support.cpp:30)
==226638== by 0x28401A: _PyObject_MakeTpCall (call.c:215)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:112)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:184)
==226638== by 0x2A5D82: handle_callback.lto_priv.0 (weakrefobject.c:952)
==226638== by 0x2A25E0: PyObject_ClearWeakRefs (weakrefobject.c:998)
==226638== Block was alloc'd at
==226638== at 0x4843F2F: operator new(unsigned long) (vg_replace_malloc.c:422)
==226638== by 0x57E1F6A: allocate (new_allocator.h:137)
==226638== by 0x57E1F6A: allocate (alloc_traits.h:464)
==226638== by 0x57E1F6A: _M_get_node (stl_tree.h:561)
==226638== by 0x57E1F6A: _M_create_node<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, ledger::account_t*> > (stl_tree.h:611)
==226638== by 0x57E1F6A: operator()<std::pair<const std::__cxx11::basic_string<char>, ledger::account_t*> > (stl_tree.h:529)
==226638== by 0x57E1F6A: _M_insert_<std::pair<const std::__cxx11::basic_string<char>, ledger::account_t*>, std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, ledger::account_t*>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, ledger::account_t*> >, std::less<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, ledger::account_t*> > >::_Alloc_node> (stl_tree.h:1830)
==226638== by 0x57E1F6A: std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ledger::account_t*> >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ledger::account_t*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ledger::account_t*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ledger::account_t*> > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ledger::account_t*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ledger::account_t*>&&) (stl_tree.h:2175)
==226638== by 0x57EF853: insert (stl_map.h:841)
==226638== by 0x57EF853: ledger::account_t::find_account(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) (account.cc:95)
==226638== by 0x57EC00F: ledger::journal_t::register_account(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, ledger::post_t*, ledger::account_t*) (journal.cc:128)
==226638== by 0x57D615C: ledger::(anonymous namespace)::instance_t::parse_post(char*, long, ledger::account_t*, ledger::xact_t*, bool) (textual.cc:1480)
==226638== by 0x57DF209: parse_xact (textual.cc:1941)
==226638== by 0x57DF209: xact_directive (textual.cc:707)
==226638== by 0x57DF209: ledger::(anonymous namespace)::instance_t::read_next_directive(bool&) (textual.cc:381)
==226638== by 0x57E02DA: ledger::(anonymous namespace)::instance_t::parse() (textual.cc:252)
==226638== by 0x57E06EB: ledger::journal_t::read_textual(ledger::parse_context_stack_t&) (textual.cc:2004)
==226638== by 0x57EA3FA: ledger::journal_t::read(ledger::parse_context_stack_t&) (journal.cc:472)
==226638== by 0x57B3C17: ledger::session_t::read_journal_from_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (session.cc:233)
==226638== by 0x58FBEB9: invoke<boost::python::to_python_indirect<ledger::journal_t*, boost::python::detail::make_reference_holder>, ledger::journal_t* (ledger::session_t::*)(const std::__cxx11::basic_string<char>&), boost::python::arg_from_python<ledger::session_t&>, boost::python::arg_from_python<const std::__cxx11::basic_string<char>&> > (invoke.hpp:86)
==226638== by 0x58FBEB9: operator() (caller.hpp:233)
==226638== by 0x58FBEB9: boost::python::objects::caller_py_function_impl<boost::python::detail::caller<ledger::journal_t* (ledger::session_t::*)(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&), boost::python::return_internal_reference<1ul, boost::python::default_call_policies>, boost::mpl::vector3<ledger::journal_t*, ledger::session_t&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&> > >::operator()(_object*, _object*) (py_function.hpp:38)
==226638== by 0x5EF145C: operator() (py_function.hpp:147)
==226638== by 0x5EF145C: boost::python::objects::function::call(_object*, _object*) const (function.cpp:221)
==226638==
==226638== Invalid read of size 8
==226638== at 0x67A0C07: std::_Rb_tree_increment(std::_Rb_tree_node_base*) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
==226638== by 0x57F0D37: operator++ (stl_tree.h:287)
==226638== by 0x57F0D37: next<std::map<std::__cxx11::basic_string<char>, ledger::account_t*>, mpl_::bool_<false> > (foreach.hpp:767)
==226638== by 0x57F0D37: ledger::account_t::clear_xdata() (account.cc:608)
==226638== by 0x58DFAF1: ~collector_wrapper (py_journal.cc:164)
==226638== by 0x58DFAF1: checked_delete<ledger::(anonymous namespace)::collector_wrapper> (checked_delete.hpp:36)
==226638== by 0x58DFAF1: checked_delete<ledger::(anonymous namespace)::collector_wrapper> (checked_delete.hpp:31)
==226638== by 0x58DFAF1: boost::detail::sp_counted_impl_p<ledger::(anonymous namespace)::collector_wrapper>::dispose() (sp_counted_impl.hpp:89)
==226638== by 0x58DC50C: UnknownInlinedFun (sp_counted_base_gcc_atomic.hpp:120)
==226638== by 0x58DC50C: UnknownInlinedFun (sp_counted_base_gcc_atomic.hpp:116)
==226638== by 0x58DC50C: ~shared_count (shared_count.hpp:432)
==226638== by 0x58DC50C: ~shared_ptr (shared_ptr.hpp:335)
==226638== by 0x58DC50C: boost::python::objects::pointer_holder<boost::shared_ptr<ledger::(anonymous namespace)::collector_wrapper>, ledger::(anonymous namespace)::collector_wrapper>::~pointer_holder() (pointer_holder.hpp:51)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x58E180C: UnknownInlinedFun (object.h:500)
==226638== by 0x58E180C: ~object_base (object_core.hpp:423)
==226638== by 0x58E180C: ~object (object_core.hpp:238)
==226638== by 0x58E180C: ~iterator_range (iterator.hpp:41)
==226638== by 0x58E180C: boost::python::objects::value_holder<boost::python::objects::iterator_range<boost::python::return_internal_reference<1ul, boost::python::default_call_policies>, __gnu_cxx::__normal_iterator<ledger::post_t**, std::vector<ledger::post_t*, std::allocator<ledger::post_t*> > > > >::~value_holder() (value_holder.hpp:39)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:500)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:567)
==226638== by 0x5EF54A4: life_support_call (life_support.cpp:30)
==226638== by 0x28401A: _PyObject_MakeTpCall (call.c:215)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:112)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:184)
==226638== by 0x2A5D82: handle_callback.lto_priv.0 (weakrefobject.c:952)
==226638== Address 0x4ebab18 is 136 bytes inside a block of size 976 free'd
==226638== at 0x484671B: operator delete(void*) (vg_replace_malloc.c:923)
==226638== by 0x57EB5B2: checked_delete<ledger::account_t> (checked_delete.hpp:36)
==226638== by 0x57EB5B2: ledger::journal_t::~journal_t() (journal.cc:82)
==226638== by 0x57BA7C1: operator() (unique_ptr.h:95)
==226638== by 0x57BA7C1: ~unique_ptr (unique_ptr.h:396)
==226638== by 0x57BA7C1: ledger::session_t::~session_t() (session.h:80)
==226638== by 0x58FC52B: boost::python::objects::value_holder<ledger::session_t>::~value_holder() (value_holder.hpp:39)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:500)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:567)
==226638== by 0x5EF54A4: life_support_call (life_support.cpp:30)
==226638== by 0x28401A: _PyObject_MakeTpCall (call.c:215)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:112)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:184)
==226638== by 0x2A5D82: handle_callback.lto_priv.0 (weakrefobject.c:952)
==226638== by 0x2A25E0: PyObject_ClearWeakRefs (weakrefobject.c:998)
==226638== by 0x5EEDA75: instance_dealloc (class.cpp:344)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== Block was alloc'd at
==226638== at 0x4843F2F: operator new(unsigned long) (vg_replace_malloc.c:422)
==226638== by 0x57E7A49: ledger::journal_t::initialize() (journal.cc:87)
==226638== by 0x57EB359: ledger::journal_t::journal_t() (journal.cc:47)
==226638== by 0x57B5425: ledger::session_t::session_t() (session.cc:62)
==226638== by 0x58FB017: value_holder (value_holder.hpp:131)
==226638== by 0x58FB017: boost::python::objects::make_holder<0>::apply<boost::python::objects::value_holder<ledger::session_t>, boost::mpl::vector0<mpl_::na> >::execute(_object*) (make_holder.hpp:94)
==226638== by 0x588BA6D: UnknownInlinedFun (invoke.hpp:79)
==226638== by 0x588BA6D: operator() (caller.hpp:233)
==226638== by 0x588BA6D: boost::python::objects::caller_py_function_impl<boost::python::detail::caller<void (*)(_object*), boost::python::default_call_policies, boost::mpl::vector2<void, _object*> > >::operator()(_object*, _object*) (py_function.hpp:38)
==226638== by 0x5EF145C: operator() (py_function.hpp:147)
==226638== by 0x5EF145C: boost::python::objects::function::call(_object*, _object*) const (function.cpp:221)
==226638== by 0x5EF1627: operator() (function.cpp:581)
==226638== by 0x5EF1627: boost::detail::function::void_function_ref_invoker0<boost::python::objects::(anonymous namespace)::bind_return, void>::invoke(boost::detail::function::function_buffer&) (function_template.hpp:193)
==226638== by 0x5EF659A: operator() (function_template.hpp:763)
==226638== by 0x5EF659A: boost::python::detail::exception_handler::operator()(boost::function0<void> const&) const (errors.cpp:74)
==226638== by 0x58E4692: operator() (translate_exception.hpp:46)
==226638== by 0x58E4692: operator()<bool, boost::python::detail::translate_exception<ledger::error_count, void (*)(const ledger::error_count&)>, boost::_bi::rrlist2<const boost::python::detail::exception_handler&, const boost::function0<void>&> > (bind.hpp:388)
==226638== by 0x58E4692: operator()<const boost::python::detail::exception_handler&, const boost::function0<void>&> (bind.hpp:1318)
==226638== by 0x58E4692: boost::detail::function::function_obj_invoker2<boost::_bi::bind_t<bool, boost::python::detail::translate_exception<ledger::error_count, void (*)(ledger::error_count const&)>, boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<void (*)(ledger::error_count const&)> > >, bool, boost::python::detail::exception_handler const&, boost::function0<void> const&>::invoke(boost::detail::function::function_buffer&, boost::python::detail::exception_handler const&, boost::function0<void> const&) (function_template.hpp:137)
==226638== by 0x58E46E2: operator() (translate_exception.hpp:46)
==226638== by 0x58E46E2: operator()<bool, boost::python::detail::translate_exception<ledger::parse_error, void (*)(const ledger::parse_error&)>, boost::_bi::rrlist2<const boost::python::detail::exception_handler&, const boost::function0<void>&> > (bind.hpp:388)
==226638== by 0x58E46E2: operator()<const boost::python::detail::exception_handler&, const boost::function0<void>&> (bind.hpp:1318)
==226638== by 0x58E46E2: boost::detail::function::function_obj_invoker2<boost::_bi::bind_t<bool, boost::python::detail::translate_exception<ledger::parse_error, void (*)(ledger::parse_error const&)>, boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<void (*)(ledger::parse_error const&)> > >, bool, boost::python::detail::exception_handler const&, boost::function0<void> const&>::invoke(boost::detail::function::function_buffer&, boost::python::detail::exception_handler const&, boost::function0<void> const&) (function_template.hpp:137)
==226638== by 0x58AF372: operator() (translate_exception.hpp:46)
==226638== by 0x58AF372: operator()<bool, boost::python::detail::translate_exception<ledger::balance_error, void (*)(const ledger::balance_error&)>, boost::_bi::rrlist2<const boost::python::detail::exception_handler&, const boost::function0<void>&> > (bind.hpp:388)
==226638== by 0x58AF372: operator()<const boost::python::detail::exception_handler&, const boost::function0<void>&> (bind.hpp:1318)
==226638== by 0x58AF372: boost::detail::function::function_obj_invoker2<boost::_bi::bind_t<bool, boost::python::detail::translate_exception<ledger::balance_error, void (*)(ledger::balance_error const&)>, boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<void (*)(ledger::balance_error const&)> > >, bool, boost::python::detail::exception_handler const&, boost::function0<void> const&>::invoke(boost::detail::function::function_buffer&, boost::python::detail::exception_handler const&, boost::function0<void> const&) (function_template.hpp:137)
==226638==
==226638== Invalid read of size 8
==226638== at 0x67A0C0D: std::_Rb_tree_increment(std::_Rb_tree_node_base*) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
==226638== by 0x57F0D37: operator++ (stl_tree.h:287)
==226638== by 0x57F0D37: next<std::map<std::__cxx11::basic_string<char>, ledger::account_t*>, mpl_::bool_<false> > (foreach.hpp:767)
==226638== by 0x57F0D37: ledger::account_t::clear_xdata() (account.cc:608)
==226638== by 0x58DFAF1: ~collector_wrapper (py_journal.cc:164)
==226638== by 0x58DFAF1: checked_delete<ledger::(anonymous namespace)::collector_wrapper> (checked_delete.hpp:36)
==226638== by 0x58DFAF1: checked_delete<ledger::(anonymous namespace)::collector_wrapper> (checked_delete.hpp:31)
==226638== by 0x58DFAF1: boost::detail::sp_counted_impl_p<ledger::(anonymous namespace)::collector_wrapper>::dispose() (sp_counted_impl.hpp:89)
==226638== by 0x58DC50C: UnknownInlinedFun (sp_counted_base_gcc_atomic.hpp:120)
==226638== by 0x58DC50C: UnknownInlinedFun (sp_counted_base_gcc_atomic.hpp:116)
==226638== by 0x58DC50C: ~shared_count (shared_count.hpp:432)
==226638== by 0x58DC50C: ~shared_ptr (shared_ptr.hpp:335)
==226638== by 0x58DC50C: boost::python::objects::pointer_holder<boost::shared_ptr<ledger::(anonymous namespace)::collector_wrapper>, ledger::(anonymous namespace)::collector_wrapper>::~pointer_holder() (pointer_holder.hpp:51)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x58E180C: UnknownInlinedFun (object.h:500)
==226638== by 0x58E180C: ~object_base (object_core.hpp:423)
==226638== by 0x58E180C: ~object (object_core.hpp:238)
==226638== by 0x58E180C: ~iterator_range (iterator.hpp:41)
==226638== by 0x58E180C: boost::python::objects::value_holder<boost::python::objects::iterator_range<boost::python::return_internal_reference<1ul, boost::python::default_call_policies>, __gnu_cxx::__normal_iterator<ledger::post_t**, std::vector<ledger::post_t*, std::allocator<ledger::post_t*> > > > >::~value_holder() (value_holder.hpp:39)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:500)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:567)
==226638== by 0x5EF54A4: life_support_call (life_support.cpp:30)
==226638== by 0x28401A: _PyObject_MakeTpCall (call.c:215)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:112)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:184)
==226638== by 0x2A5D82: handle_callback.lto_priv.0 (weakrefobject.c:952)
==226638== Address 0x4ebe318 is 24 bytes inside a block of size 72 free'd
==226638== at 0x484671B: operator delete(void*) (vg_replace_malloc.c:923)
==226638== by 0x57F4D47: deallocate (new_allocator.h:158)
==226638== by 0x57F4D47: deallocate (alloc_traits.h:496)
==226638== by 0x57F4D47: _M_put_node (stl_tree.h:565)
==226638== by 0x57F4D47: _M_drop_node (stl_tree.h:632)
==226638== by 0x57F4D47: _M_erase (stl_tree.h:1937)
==226638== by 0x57F4D47: ~_Rb_tree (stl_tree.h:984)
==226638== by 0x57F4D47: ~map (stl_map.h:312)
==226638== by 0x57F4D47: ledger::account_t::~account_t() (account.cc:50)
==226638== by 0x57F4DE8: ledger::account_t::~account_t() (account.cc:50)
==226638== by 0x57EB5B2: checked_delete<ledger::account_t> (checked_delete.hpp:36)
==226638== by 0x57EB5B2: ledger::journal_t::~journal_t() (journal.cc:82)
==226638== by 0x57BA7C1: operator() (unique_ptr.h:95)
==226638== by 0x57BA7C1: ~unique_ptr (unique_ptr.h:396)
==226638== by 0x57BA7C1: ledger::session_t::~session_t() (session.h:80)
==226638== by 0x58FC52B: boost::python::objects::value_holder<ledger::session_t>::~value_holder() (value_holder.hpp:39)
==226638== by 0x5EEDA4E: instance_dealloc (class.cpp:335)
==226638== by 0x2A1C75: subtype_dealloc.lto_priv.0 (typeobject.c:1460)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:500)
==226638== by 0x5EF54A4: UnknownInlinedFun (object.h:567)
==226638== by 0x5EF54A4: life_support_call (life_support.cpp:30)
==226638== by 0x28401A: _PyObject_MakeTpCall (call.c:215)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:112)
==226638== by 0x2A5D82: UnknownInlinedFun (abstract.h:184)
==226638== by 0x2A5D82: handle_callback.lto_priv.0 (weakrefobject.c:952)
==226638== by 0x2A25E0: PyObject_ClearWeakRefs (weakrefobject.c:998)
==226638== Block was alloc'd at
==226638== at 0x4843F2F: operator new(unsigned long) (vg_replace_malloc.c:422)
==226638== by 0x57E1F6A: allocate (new_allocator.h:137)
==226638== by 0x57E1F6A: allocate (alloc_traits.h:464)
==226638== by 0x57E1F6A: _M_get_node (stl_tree.h:561)
==226638== by 0x57E1F6A: _M_create_node<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, ledger::account_t*> > (stl_tree.h:611)
==226638== by 0x57E1F6A: operator()<std::pair<const std::__cxx11::basic_string<char>, ledger::account_t*> > (stl_tree.h:529)
==226638== by 0x57E1F6A: _M_insert_<std::pair<const std::__cxx11::basic_string<char>, ledger::account_t*>, std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, ledger::account_t*>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, ledger::account_t*> >, std::less<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, ledger::account_t*> > >::_Alloc_node> (stl_tree.h:1830)
==226638== by 0x57E1F6A: std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ledger::account_t*> >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ledger::account_t*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ledger::account_t*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ledger::account_t*> > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ledger::account_t*> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ledger::account_t*>&&) (stl_tree.h:2175)
==226638== by 0x57EF853: insert (stl_map.h:841)
==226638== by 0x57EF853: ledger::account_t::find_account(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) (account.cc:95)
==226638== by 0x57EC00F: ledger::journal_t::register_account(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, ledger::post_t*, ledger::account_t*) (journal.cc:128)
==226638== by 0x57D615C: ledger::(anonymous namespace)::instance_t::parse_post(char*, long, ledger::account_t*, ledger::xact_t*, bool) (textual.cc:1480)
==226638== by 0x57DF209: parse_xact (textual.cc:1941)
==226638== by 0x57DF209: xact_directive (textual.cc:707)
==226638== by 0x57DF209: ledger::(anonymous namespace)::instance_t::read_next_directive(bool&) (textual.cc:381)
==226638== by 0x57E02DA: ledger::(anonymous namespace)::instance_t::parse() (textual.cc:252)
==226638== by 0x57E06EB: ledger::journal_t::read_textual(ledger::parse_context_stack_t&) (textual.cc:2004)
==226638== by 0x57EA3FA: ledger::journal_t::read(ledger::parse_context_stack_t&) (journal.cc:472)
==226638== by 0x57B3C17: ledger::session_t::read_journal_from_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (session.cc:233)
==226638== by 0x58FBEB9: invoke<boost::python::to_python_indirect<ledger::journal_t*, boost::python::detail::make_reference_holder>, ledger::journal_t* (ledger::session_t::*)(const std::__cxx11::basic_string<char>&), boost::python::arg_from_python<ledger::session_t&>, boost::python::arg_from_python<const std::__cxx11::basic_string<char>&> > (invoke.hpp:86)
==226638== by 0x58FBEB9: operator() (caller.hpp:233)
==226638== by 0x58FBEB9: boost::python::objects::caller_py_function_impl<boost::python::detail::caller<ledger::journal_t* (ledger::session_t::*)(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&), boost::python::return_internal_reference<1ul, boost::python::default_call_policies>, boost::mpl::vector3<ledger::journal_t*, ledger::session_t&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&> > >::operator()(_object*, _object*) (py_function.hpp:38)
==226638== by 0x5EF145C: operator() (py_function.hpp:147)
==226638== by 0x5EF145C: boost::python::objects::function::call(_object*, _object*) const (function.cpp:221)
==226638==
==226638==
==226638== HEAP SUMMARY:
==226638== in use at exit: 843,774 bytes in 1,713 blocks
==226638== total heap usage: 3,833 allocs, 2,120 frees, 3,051,718 bytes allocated
==226638==
==226638== LEAK SUMMARY:
==226638== definitely lost: 0 bytes in 0 blocks
==226638== indirectly lost: 0 bytes in 0 blocks
==226638== possibly lost: 0 bytes in 0 blocks
==226638== still reachable: 843,774 bytes in 1,713 blocks
==226638== of which reachable via heuristic:
==226638== newarray : 64 bytes in 4 blocks
==226638== suppressed: 0 bytes in 0 blocks
==226638== Rerun with --leak-check=full to see details of leaked memory
==226638==
==226638== For lists of detected and suppressed errors, rerun with: -s
==226638== ERROR SUMMARY: 34 errors from 25 contexts (suppressed: 0 from 0)