Kaydet (Commit) 30f6ec7c authored tarafından Julien Nabet's avatar Julien Nabet Kaydeden (comit) Lionel Elie Mamane

Resolves tdf#89129: crash when defining a specific relationship

Returns early if comparison matches so you can reduce iterator scope and avoid last test for logging.

/usr/include/c++/4.9/debug/safe_iterator.h:168:error: attempt to copy-
    construct an iterator from a singular iterator.

Objects involved in the operation:
iterator "this" @ 0x0x7fffffff3a30 {
type = N11__gnu_debug14_Safe_iteratorIN9__gnu_cxx17__normal_iteratorIPPvNSt9__cxx19986vectorIS3_SaIS3_EEEEENSt7__debug6vectorIS3_S7_EEEE (mutable iterator);
  state = past-the-end;
  references sequence with type `NSt7__debug6vectorIPvSaIS1_EEE' @ 0x0x7fffffff4088
}
iterator "other" @ 0x0x7fffffff3a90 {
type = N11__gnu_debug14_Safe_iteratorIN9__gnu_cxx17__normal_iteratorIPPvNSt9__cxx19986vectorIS3_SaIS3_EEEEENSt7__debug6vectorIS3_S7_EEEE (mutable iterator);
  state = singular;
  references sequence with type `NSt7__debug6vectorIPvSaIS1_EEE' @ 0x0x7fffffff4088
}

4  0x00002aaab193d6e9 in boost::void_ptr_iterator<__gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<void**, std::__cxx1998::vector<void*, std::allocator<void*> > >, std::__debug::vector<void*, std::allocator<void*> > >, ImplBtnDlgItem>::base (this=0x7fffffff3a90)
    at /home/julien/compile-libreoffice/libreoffice/workdir/UnpackedTarball/boost/boost/ptr_container/detail/void_ptr_iterator.hpp:121
5  0x00002aaab193d269 in boost::operator==<__gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<void**, std::__cxx1998::vector<void*, std::allocator<void*> > >, std::__debug::vector<void*, std::allocator<void*> > >, ImplBtnDlgItem, __gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<void**, std::__cxx1998::vector<void*, std::allocator<void*> > >, std::__debug::vector<void*, std::allocator<void*> > >, ImplBtnDlgItem> (l=..., r=...)
    at /home/julien/compile-libreoffice/libreoffice/workdir/UnpackedTarball/boost/boost/ptr_container/detail/void_ptr_iterator.hpp:179
6  0x00002aaab193c2ca in ButtonDialog::RemoveButton (this=0x7fffffff3d90, nId=1) at /home/julien/compile-libreoffice/libreoffice/vcl/source/window/btndlg.cxx:340
7  0x00002aaad8ed109b in dbaui::ORelationTableView::lookForUiActivities (this=0x317ef30)
    at /home/julien/compile-libreoffice/libreoffice/dbaccess/source/ui/relationdesign/RelationTableView.cxx:342

Change-Id: Ied45c222c94d2a362075a3b1550b6092aad77c62
Reviewed-on: https://gerrit.libreoffice.org/14325Reviewed-by: 's avatarLionel Elie Mamane <lionel@mamane.lu>
Tested-by: 's avatarLionel Elie Mamane <lionel@mamane.lu>
üst 4d6a509e
...@@ -322,8 +322,7 @@ void ButtonDialog::AddButton( StandardButtonType eType, sal_uInt16 nId, ...@@ -322,8 +322,7 @@ void ButtonDialog::AddButton( StandardButtonType eType, sal_uInt16 nId,
void ButtonDialog::RemoveButton( sal_uInt16 nId ) void ButtonDialog::RemoveButton( sal_uInt16 nId )
{ {
btn_iterator it; for (btn_iterator it = maItemList.begin(); it != maItemList.end(); ++it)
for (it = maItemList.begin(); it != maItemList.end(); ++it)
{ {
if (it->mnId == nId) if (it->mnId == nId)
{ {
...@@ -333,12 +332,11 @@ void ButtonDialog::RemoveButton( sal_uInt16 nId ) ...@@ -333,12 +332,11 @@ void ButtonDialog::RemoveButton( sal_uInt16 nId )
delete it->mpPushButton; delete it->mpPushButton;
maItemList.erase(it); maItemList.erase(it);
break; return;
} }
} }
if (it == maItemList.end()) SAL_WARN( "vcl.window", "ButtonDialog::RemoveButton(): ButtonId invalid" );
SAL_WARN( "vcl.window", "ButtonDialog::RemoveButton(): ButtonId invalid" );
} }
void ButtonDialog::Clear() void ButtonDialog::Clear()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment