sc/source/core/tool/interpr1.cxx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)
New commits: commit 8b26f758d5011b8b769fa171011210262683dd16 Author: Eike Rathke <er...@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 <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@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 {
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits