summaryrefslogtreecommitdiffstats
path: root/sc/inc/table.hxx
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2014-12-09 14:48:36 +0100
committerEike Rathke <erack@redhat.com>2014-12-09 14:54:44 +0100
commitb1d4a2ae3d1b461bc52768ed62f354558596fa39 (patch)
tree0188553d58fb67c267ba0d05afedfb2459d20d97 /sc/inc/table.hxx
parentadd a comment about side effects and whether we want them or not (diff)
downloadcore-b1d4a2ae3d1b461bc52768ed62f354558596fa39.tar.gz
core-b1d4a2ae3d1b461bc52768ed62f354558596fa39.zip
introduce BroadcastBroadcasters() to speedup BroadcastCells()
Iterating over a range and attempting to get a broadcaster for each cell position is a performance bottle neck. Take advantage of the column's existing maBroadcasters structure instead. Change-Id: I5467a64ee3c0b5f430be1f0c4b940d3f71874827
Diffstat (limited to 'sc/inc/table.hxx')
-rw-r--r--sc/inc/table.hxx8
1 files changed, 8 insertions, 0 deletions
diff --git a/sc/inc/table.hxx b/sc/inc/table.hxx
index 7661fdace7a7..89a9a495b2d2 100644
--- a/sc/inc/table.hxx
+++ b/sc/inc/table.hxx
@@ -112,6 +112,7 @@ struct ScColWidthParam;
class ScRangeName;
class ScDBData;
class ScDocumentImport;
+class ScHint;
class ScTable : boost::noncopyable
{
@@ -541,6 +542,13 @@ public:
void CompileAll( sc::CompileFormulaContext& rCxt );
void CompileXML( sc::CompileFormulaContext& rCxt, ScProgress& rProgress );
+ /** Broadcast single broadcasters in range, without explicitly setting
+ anything dirty, not doing area broadcasts.
+ @param rHint address is modified to adapt to the actual broadcasted
+ position on each iteration and upon return points to the last
+ position broadcasted. */
+ bool BroadcastBroadcasters( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScHint& rHint );
+
bool CompileErrorCells( sc::CompileFormulaContext& rCxt, sal_uInt16 nErrCode );
void UpdateReference(