https://bugs.documentfoundation.org/show_bug.cgi?id=118199
Armin Le Grand (CIB) <armin.le.gr...@me.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED
Assignee|libreoffice-b...@lists.free |armin.le.gr...@me.com
|desktop.org |
--- Comment #7 from Armin Le Grand (CIB) <armin.le.gr...@me.com> ---
SdrText::~SdrText is called in Model cleanup after SdrTableObj::~SdrTableObj,
so SdrText::mrObject is already dead, but used in Cell::~Cell by using
Cell::dispose by using SetOutlinerParaObject.
Shutdown problem -> each Cell remembers the SdrObject it is based upon. Need a
mechanism to safely discover that the SdrObject is already dead. Note: calling
Cell::SetOutlinerParaObject in dispose() called from destructor is not good
anyways - that's a virtual function.
Problem detected, but how to solve that...?
Compared with libreoffice-6-0: Difference is that mpOutlinerParaObject in
SdrText is already destroyed in SdrText::~SdrText() and in
SdrText::SetOutlinerParaObject a check
if( mpOutlinerParaObject != pTextObject )
is used, so the critical access to the already destroyed SdrObject does not
happen. A second diff is that mpOutlinerParaObject in master is a
std::unique_ptr<OutlinerParaObject> now.
Thiinking about it...
--
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
Libreoffice-bugs mailing list
Libreoffice-bugs@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-bugs