[GSOC] Fix for performance loss due to recalc of volatile cells

Daniel Bankston daniel.dev.libreoffice at gmail.com
Fri Jul 13 12:14:02 PDT 2012


On 07/13/2012 11:14 AM, Eike Rathke wrote:
> So, after import, is a complete matrix already set as a result when
> SetMatColsRows() is called? And if so, how? Or are only individual
> results set at the cells? In which case setting the formula cell's
> matrix dimension indeed should overwrite the result of the top left cell
> until that is interpreted.
Hi, Eike,

During import when the matrix formula cell is encountered, 
ScMyTables::AddMatrixRange->ScDocument::InsertMatrixFormula calls 
ScFormulaCell::SetMatColsRows then (InsertMatrixFormula) sets the matrix 
formula cell (top left) and then the matrix reference cells.  
http://opengrok.libreoffice.org/xref/core/sc/source/core/data/documen4.cxx#121 
.  After this, the top left matrix formula result is set with 
ScFormulaCell::SetHybridString or SetHybridDouble.  As the matrix 
reference cells are encountered during import, their result is also set 
with ScFormulaCell::SetHybridString or SetHybridDouble.

--Daniel


More information about the LibreOffice mailing list