summaryrefslogtreecommitdiff
path: root/sc/source/core
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2015-08-18 11:33:44 +0200
committerAndras Timar <andras.timar@collabora.com>2015-08-20 20:34:14 +0200
commit9093949473020b415bc02564726d7d2a6960e36f (patch)
tree2a3bfcbc93a75658a8098965b903c70953fbe78e /sc/source/core
parentf32e4c12229fcd1da4394088b7a5776dac16da72 (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>
Diffstat (limited to 'sc/source/core')
-rw-r--r--sc/source/core/data/document.cxx8
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()