From 6855a8a9a7d44be5a020ef609536b76c2dfe05d2 Mon Sep 17 00:00:00 2001 From: Eike Rathke Date: Tue, 18 Aug 2015 11:33:44 +0200 Subject: Resolves: tdf#92749 invalidate lookup caches after initial hard recalc MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ... 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/17829 Reviewed-by: Norbert Thiebaud Reviewed-by: Caolán McNamara Tested-by: Caolán McNamara --- sc/source/core/data/document.cxx | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx index e00a5ccc6886..153b77f6f86f 100644 --- a/sc/source/core/data/document.cxx +++ b/sc/source/core/data/document.cxx @@ -3780,6 +3780,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() -- cgit v1.2.3