diff options
author | Jan Holesovsky <kendy@collabora.com> | 2014-02-18 09:37:57 +0100 |
---|---|---|
committer | Jan Holesovsky <kendy@collabora.com> | 2014-02-18 09:46:56 +0100 |
commit | 2b2c528826b6b29d90fcb6a8e755c75cb0d65985 (patch) | |
tree | a070a7d07cee8fa762b6ce31cb5bc43a67651bb9 /include/package | |
parent | 11a3cb8682f618484640b336cc4b697e44cc419b (diff) |
Protect PostIt deletion by SolarMutex.
I was getting crashes during editing with notes; unfortunately I am unable to
reproduce it reliably, so I am not 100% sure this is the right fix - but I
hope so.
This is what valgrind was suggesting:
==21766== Invalid read of size 8
==21766== at 0x285AF9C7: std::__debug::list<SwSidebarItem*, std::allocator<SwSidebarItem*> >::remove(SwSidebarItem* const&) (list:569)
==21766== by 0x285A2BFC: SwPostItMgr::RemoveItem(SfxBroadcaster*) (PostItMgr.cxx:241)
==21766== by 0x285A3241: SwPostItMgr::Notify(SfxBroadcaster&, SfxHint const&) (PostItMgr.cxx:346)
==21766== by 0x84AFB1E: SfxBroadcaster::Broadcast(SfxHint const&) (brdcst.cxx:46)
...
==21766== by 0xA5A3C74: Application::Yield() (svapp.cxx:393)
==21766== by 0xA5A3C20: Application::Execute() (svapp.cxx:342)
==21766== by 0x50EA0F4: desktop::Desktop::Main() (app.cxx:1678)
...
==21766== Address 0x2e2824f0 is 16 bytes inside a block of size 24 free'd
==21766== at 0x4C2AA9C: operator delete(void*) (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==21766== by 0x285B4B85: __gnu_cxx::new_allocator<std::__cxx1998::_List_node<SwSidebarItem*> >::deallocate(std::__cxx1998::_List_node<SwSidebarItem*>*, unsigned long) (new_allocator.h:100)
==21766== by 0x285B40C1: std::__cxx1998::_List_base<SwSidebarItem*, std::allocator<SwSidebarItem*> >::_M_put_node(std::__cxx1998::_List_node<SwSidebarItem*>*) (stl_list.h:339)
==21766== by 0x285B43BB: std::__cxx1998::list<SwSidebarItem*, std::allocator<SwSidebarItem*> >::_M_erase(std::__cxx1998::_List_iterator<SwSidebarItem*>) (stl_list.h:1549)
==21766== by 0x285B346E: std::__cxx1998::list<SwSidebarItem*, std::allocator<SwSidebarItem*> >::erase(std::__cxx1998::_List_iterator<SwSidebarItem*>) (list.tcc:113)
==21766== by 0x285B18EB: std::__debug::list<SwSidebarItem*, std::allocator<SwSidebarItem*> >::_M_erase(std::__cxx1998::_List_iterator<SwSidebarItem*>) (list:423)
==21766== by 0x285AF9E6: std::__debug::list<SwSidebarItem*, std::allocator<SwSidebarItem*> >::remove(SwSidebarItem* const&) (list:570)
==21766== by 0x285A2BFC: SwPostItMgr::RemoveItem(SfxBroadcaster*) (PostItMgr.cxx:241)
==21766== by 0x285A3241: SwPostItMgr::Notify(SfxBroadcaster&, SfxHint const&) (PostItMgr.cxx:346)
==21766== by 0x84AFB1E: SfxBroadcaster::Broadcast(SfxHint const&) (brdcst.cxx:46)
...
==21766== by 0xA5A3C74: Application::Yield() (svapp.cxx:393)
==21766== by 0xA5A3C20: Application::Execute() (svapp.cxx:342)
==21766==
Change-Id: I0ed3e09338810200766bd10203d9fcac26e822f6
Diffstat (limited to 'include/package')
0 files changed, 0 insertions, 0 deletions