https://bugs.documentfoundation.org/show_bug.cgi?id=118199

Armin Le Grand (CIB) <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
           Assignee|[email protected] |[email protected]
                   |desktop.org                 |

--- Comment #7 from Armin Le Grand (CIB) <[email protected]> ---
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
[email protected]
https://lists.freedesktop.org/mailman/listinfo/libreoffice-bugs

Reply via email to