diff options
author | Eike Rathke <erack@redhat.com> | 2015-06-29 22:20:04 +0200 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2015-09-28 08:03:00 +0200 |
commit | e39bcc462a1dedb963b038488fd77f0d020ddc8d (patch) | |
tree | 7dc957e995a6d29f82a2cbb9d189886e87676264 | |
parent | f4f6585c1fa2604f787135ccdc2349cfc38845f9 (diff) |
Resolves: tdf#31577 volatile lookup ranges must not be cached
Change-Id: Iac8574329c8c8e0bc0ac956993ccdd085372a6cc
(cherry picked from commit 5e83f49e5d62587f427ad416f5188ce81506c05b)
-rw-r--r-- | sc/source/core/tool/interpr1.cxx | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/sc/source/core/tool/interpr1.cxx b/sc/source/core/tool/interpr1.cxx index 55917d7154a9..20acc54f3e59 100644 --- a/sc/source/core/tool/interpr1.cxx +++ b/sc/source/core/tool/interpr1.cxx @@ -8491,7 +8491,13 @@ bool ScInterpreter::LookupQueryWithCache( ScAddress & o_rResultPos, const ScQueryEntry& rEntry = rParam.GetEntry(0); bool bColumnsMatch = (rParam.nCol1 == rEntry.nField); OSL_ENSURE( bColumnsMatch, "ScInterpreter::LookupQueryWithCache: columns don't match"); - if (!bColumnsMatch) + // At least all volatile functions that generate indirect references have + // to force non-cached lookup. + /* TODO: We could further classify volatile functions into reference + * generating and not reference generating functions to have to force less + * direct lookups here. We could even further attribute volatility per + * parameter so it would affect only the lookup range parameter. */ + if (!bColumnsMatch || GetVolatileType() != NOT_VOLATILE) bFound = lcl_LookupQuery( o_rResultPos, pDok, rParam, rEntry); else { |