[Libreoffice-commits] core.git: Branch 'libreoffice-4-4' - sc/source
Eike Rathke
erack at redhat.com
Tue Jun 30 04:21:29 PDT 2015
sc/source/core/tool/interpr1.cxx | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
New commits:
commit 8b26f758d5011b8b769fa171011210262683dd16
Author: Eike Rathke <erack at redhat.com>
Date: Mon Jun 29 22:20:04 2015 +0200
Resolves: tdf#31577 volatile lookup ranges must not be cached
Change-Id: Iac8574329c8c8e0bc0ac956993ccdd085372a6cc
(cherry picked from commit 5e83f49e5d62587f427ad416f5188ce81506c05b)
Reviewed-on: https://gerrit.libreoffice.org/16598
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
Tested-by: Caolán McNamara <caolanm at redhat.com>
diff --git a/sc/source/core/tool/interpr1.cxx b/sc/source/core/tool/interpr1.cxx
index 1713089..f2f1d43 100644
--- a/sc/source/core/tool/interpr1.cxx
+++ b/sc/source/core/tool/interpr1.cxx
@@ -8374,7 +8374,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
{
More information about the Libreoffice-commits
mailing list