sc/source/core/data/queryiter.cxx |    5 +++++
 sc/source/core/inc/interpre.hxx   |    3 +--
 sc/source/core/tool/interpr1.cxx  |    1 +
 3 files changed, 7 insertions(+), 2 deletions(-)

New commits:
commit 78b907e70359c11f5aba5568447056a130213ebd
Author:     Stephan Bergmann <stephan.bergm...@allotropia.de>
AuthorDate: Thu Feb 15 14:49:10 2024 +0100
Commit:     Stephan Bergmann <stephan.bergm...@allotropia.de>
CommitDate: Thu Feb 15 19:44:28 2024 +0100

    Move #include <queryiter.hxx> to where it is actually used
    
    f7039822c7ad3987326e1c20ea4a745c158f9682 "tdf#127293 Add Excel2021 function
    XLOOKUP to Calc" had moved this #include around, with no documented 
rationale
    and for no obvious reason.  Lets move it back.
    
    Change-Id: I87c96526a6006837c9303d6af7bcf4e79e0bd581
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163442
    Tested-by: Jenkins
    Reviewed-by: Stephan Bergmann <stephan.bergm...@allotropia.de>

diff --git a/sc/source/core/inc/interpre.hxx b/sc/source/core/inc/interpre.hxx
index e577a5e2bf8a..ea30b57ae7ea 100644
--- a/sc/source/core/inc/interpre.hxx
+++ b/sc/source/core/inc/interpre.hxx
@@ -30,7 +30,7 @@
 #include <token.hxx>
 #include <math.hxx>
 #include <kahan.hxx>
-#include <queryiter.hxx>
+#include <queryentry.hxx>
 #include "parclass.hxx"
 
 #include <map>
@@ -47,7 +47,6 @@ class ScFormulaCell;
 class ScDBRangeBase;
 struct ScQueryParam;
 struct ScDBQueryParamBase;
-struct ScQueryEntry;
 
 struct ScSingleRefData;
 struct ScComplexRefData;
diff --git a/sc/source/core/tool/interpr1.cxx b/sc/source/core/tool/interpr1.cxx
index 960516d787ea..3d3b967ffaa0 100644
--- a/sc/source/core/tool/interpr1.cxx
+++ b/sc/source/core/tool/interpr1.cxx
@@ -62,6 +62,7 @@
 #include <doubleref.hxx>
 #include <queryparam.hxx>
 #include <queryentry.hxx>
+#include <queryiter.hxx>
 #include <tokenarray.hxx>
 #include <compare.hxx>
 #include <comphelper/lok.hxx>
commit 33505523731b930c9a1282bab293e59c9922317f
Author:     Stephan Bergmann <stephan.bergm...@allotropia.de>
AuthorDate: Thu Feb 15 12:30:20 2024 +0100
Commit:     Stephan Bergmann <stephan.bergm...@allotropia.de>
CommitDate: Thu Feb 15 19:44:15 2024 +0100

    Explicitly instantiate templates
    
    ...that are used in inline functions in sc/inc/queryiter.hxx, but where the
    template definition is only available in sc/source/core/data/queryiter.cxx, 
and
    which had caused at least Clang PCH builds to now fail with
    
    > ld.lld: error: undefined symbol: bool 
ScQueryCellIteratorAccessSpecific<(ScQueryCellIteratorAccess)1>::IncPosImpl<false>()
    > >>> referenced by queryiter.hxx:111 (sc/inc/queryiter.hxx:111)
    > >>>               
workdir/CxxObject/sc/inc/pch/precompiled_sc.o:(ScQueryCellIteratorAccessSpecific<(ScQueryCellIteratorAccess)1>::IncPos())
    >
    > ld.lld: error: undefined symbol: bool 
ScQueryCellIteratorAccessSpecific<(ScQueryCellIteratorAccess)1>::IncPosImpl<true>()
    > >>> referenced by queryiter.hxx:112 (sc/inc/queryiter.hxx:112)
    > >>>               
workdir/CxxObject/sc/inc/pch/precompiled_sc.o:(ScQueryCellIteratorAccessSpecific<(ScQueryCellIteratorAccess)1>::IncPosFast())
    > clang++: error: linker command failed with exit code 1 (use -v to see 
invocation)
    > make[1]: *** [sc/Library_sc.mk:10: instdir/program/libsclo.so] Error 1
    
    Change-Id: If87b268a69e7acd411164ce53c549be32ded41cd
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163434
    Tested-by: Jenkins
    Reviewed-by: Stephan Bergmann <stephan.bergm...@allotropia.de>

diff --git a/sc/source/core/data/queryiter.cxx 
b/sc/source/core/data/queryiter.cxx
index 43996b1693eb..56d4081e7255 100644
--- a/sc/source/core/data/queryiter.cxx
+++ b/sc/source/core/data/queryiter.cxx
@@ -1284,6 +1284,11 @@ bool ScQueryCellIteratorAccessSpecific< 
ScQueryCellIteratorAccess::SortedCache >
     }
 }
 
+template
+bool 
ScQueryCellIteratorAccessSpecific<ScQueryCellIteratorAccess::SortedCache>::IncPosImpl<false>();
+template
+bool 
ScQueryCellIteratorAccessSpecific<ScQueryCellIteratorAccess::SortedCache>::IncPosImpl<true>();
+
 // Helper that allows binary search of unsorted cells using ScSortedRangeCache.
 // Rows in the given range are kept in a sorted vector and that vector is 
binary-searched.
 class ScQueryCellIteratorAccessSpecific< 
ScQueryCellIteratorAccess::SortedCache >::SortedCacheIndexer

Reply via email to