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

Reply via email to