https://bugs.documentfoundation.org/show_bug.cgi?id=142980
Bug ID: 142980
Summary: Assertion failed when adding a formula to a sheet with
Formulas calculated action
Product: LibreOffice
Version: unspecified
Hardware: All
OS: All
Status: UNCONFIRMED
Severity: normal
Priority: medium
Component: Calc
Assignee: [email protected]
Reporter: [email protected]
CC: [email protected]
Using a dbgutil build:
1. Create this stub macro:
Sub EmptyOn
End Sub
2. In a new Calc document, assign it to a sheet's Formulas calculated action
(right-click on the sheet's tab, select "Sheet Events")
3. Select an empty cell, and type into it:
=1+1
=> debug assertion failed: back() called on empty deque
The failing code is inside '#if OSL_DEBUG_LEVEL > 0' of
UndoManagerHelper_Impl::listActionLeft; it tries to read top of
m_aContextAPIFlags, which is empty at this moment.
The reason is the processing sequence in ScViewFunc::EnterData, which first
calls 'rFunc.EnterListAction( STR_UNDO_ENTERDATA );' before it processes the
formula - at this moment, there's no listeners yet, so the action is not
executed -> UndoManagerHelper_Impl::listActionEntered is not called; then it
processes the formula and calls rFunc.SetFormulaCell - at which moment, a
listener is added; and then it calls rFunc.EndListAction, which tries to call
UndoManagerHelper_Impl::listActionLeft, which relies on
UndoManagerHelper_Impl::listActionEntered being called previously.
But I don't know if simply checking if the stack is empty before the debugging
code is OK - it looks hackish.
Eike: do you have an idea how to improve this?
--
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