diff options
author | Eike Rathke <erack@redhat.com> | 2015-08-18 11:33:44 +0200 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2015-08-18 11:41:10 +0000 |
commit | 78c988f3ebbcd84832ca671dfed16ce1664f3bfe (patch) | |
tree | 45cb4b6628c25c3d5fdb5fd9b296155938995eee | |
parent | dfac25d2300b56ee4594346a4b5ce8b083a5c782 (diff) |
Resolves: tdf#92749 invalidate lookup caches after initial hard recalc
... because the caches are not setup as listeners during when the
document's hard recalc state is active.
Change-Id: Ie7ec84ee64d046e3e55ce26b92824e94a2f660e9
(cherry picked from commit f7e493229bd949066b4d8984dce7678b8687d1ae)
Reviewed-on: https://gerrit.libreoffice.org/17832
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r-- | sc/source/core/data/document.cxx | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx index 59fef65ec391..8c26dd8d8cf3 100644 --- a/sc/source/core/data/document.cxx +++ b/sc/source/core/data/document.cxx @@ -3752,6 +3752,14 @@ void ScDocument::CalcAll() if (*it) (*it)->CalcAll(); ClearFormulaTree(); + + // In hard recalc state caches were not added as listeners, invalidate them + // so the next non-CalcAll() normal lookup will not be presented with + // outdated data. + /* TODO: come up with more detailed hard recalc states so we can + * differentiate between hard recalc after load and others. */ + if (GetHardRecalcState()) + ClearLookupCaches(); } void ScDocument::CompileAll() |