diff options
author | Miklos Vajna <vmiklos@collabora.com> | 2025-01-23 17:00:07 +0100 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.com> | 2025-01-24 10:14:29 +0100 |
commit | 7ce3ff3edefe7f4540f37754d789035286634b9b (patch) | |
tree | 1e5a120d4dbca0869485fedf7cd1e82cc8709b5c /o3tl/qa/test-string_view.cxx | |
parent | 70e9083c0e511ae845a43b6ceaf9e79ee47ab880 (diff) |
cool#11002 sfx2: fix crash in SfxViewFrame::StateReload_Impl()
master
Now that the scheduler no longer calls std::abort(), we crashed with:
#5 <signal handler called>
(gdb)
#6 std::__uniq_ptr_impl<SfxMedium_Impl, std::default_delete<SfxMedium_Impl> >::_M_ptr (this=0x10) at /usr/include/c++/12/bits/unique_ptr.h:191
191 pointer _M_ptr() const noexcept { return std::get<0>(_M_t); }
(gdb)
#7 0x00007ff37cdaf9da in std::unique_ptr<SfxMedium_Impl, std::default_delete<SfxMedium_Impl> >::get (this=0x10) at /usr/include/c++/12/bits/unique_ptr.h:462
462 { return _M_t._M_ptr(); }
(gdb)
#8 0x00007ff37cdab888 in std::unique_ptr<SfxMedium_Impl, std::default_delete<SfxMedium_Impl> >::operator-> (this=0x10) at /usr/include/c++/12/bits/unique_ptr.h:455
455 return get();
(gdb)
#9 0x00007ff37cd989e3 in SfxMedium::GetItemSet (this=0x0) at sfx2/source/doc/docfile.cxx:3810
3810 if (!pImpl->m_pSet)
(gdb) up
#10 0x00007ff37d082c50 in SfxViewFrame::StateReload_Impl (this=0x1ba830c0, rSet=SfxItemSet of pool 0x18ba4d60 with parent 0x0 and Which ranges: [(6312, 6312)] = {...})
at sfx2/source/view/viewfrm.cxx:944
944 const SfxBoolItem* pItem = pSh->GetMedium()->GetItemSet().GetItem(SID_EDITDOC, false);
(gdb) print pSh->GetMedium()
$1 = (SfxMedium *) 0x0
So just check for that case when the shell doesn't have a medium.
Change-Id: I0198121853d283253b782c7e526ef8ef9436eed7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180685
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
Diffstat (limited to 'o3tl/qa/test-string_view.cxx')
0 files changed, 0 insertions, 0 deletions