Kaydet (Commit) 8e5271e1 authored tarafından Markus Mohrhard's avatar Markus Mohrhard

also import formula cells again from the cache

Change-Id: I116337f32151db4d897d88879acb0380fcedc161
Reviewed-on: https://gerrit.libreoffice.org/41221Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarMarkus Mohrhard <markus.mohrhard@googlemail.com>
üst 802477ae
......@@ -1788,6 +1788,34 @@ void ScColumn::RestoreFromCache(SvStream& rStrm)
}
break;
case 3:
{
std::vector<ScFormulaCell*> aFormulaCells(nDataSize);
ScAddress aAddr(nCol, nStartRow, nTab);
const formula::FormulaGrammar::Grammar eGrammar = formula::FormulaGrammar::GRAM_ENGLISH_XL_R1C1;
for (SCROW nRow = 0; nRow < static_cast<SCROW>(nDataSize);)
{
sal_uInt64 nFormulaGroupSize = 0;
rStrm.ReadUInt64(nFormulaGroupSize);
sal_Int32 nStrLength = 0;
rStrm.ReadInt32(nStrLength);
std::unique_ptr<char[]> pStr(new char[nStrLength]);
rStrm.ReadBytes(pStr.get(), nStrLength);
OString aOStr(pStr.get(), nStrLength);
OUString aStr = OStringToOUString(aOStr, RTL_TEXTENCODING_UTF8);
for (sal_uInt64 i = 0; i < nFormulaGroupSize; ++i)
{
aFormulaCells[nRow + i] = new ScFormulaCell(pDocument, aAddr, aStr, eGrammar);
aAddr.IncRow();
}
nRow += nFormulaGroupSize;
}
maCells.set(nStartRow, aFormulaCells.begin(), aFormulaCells.end());
}
break;
}
nReadRow += nDataSize;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment