Hi,
I have submitted a patch for review:
https://gerrit.libreoffice.org/2128
To pull it, you can do:
git pull ssh://gerrit.libreoffice.org:29418/core refs/changes/28/2128/1
bnc#802350: Cell validation is not a special (cell) content.
Cell validation is stored as cell attributes which are stored with
columns not with cells. When HasSpecialContent() is true, it flags
the *cell* not empty, which in turns causes AddTextAndValueCell to
iterate over every single cell position for all repeated columns
and rows. That can very very slow when the number of repeated rows
is very high.
Since cell validation is stored with columns, skipping empty cells
even when they have cell validation settings set won't cause any
issues, and all cell validation settings are imported correctly even
after this change.
With the test document I have (confidential), this change alone reduces
the load time from 30 seconds to 0.3 seconds.
(cherry picked from commit f6acfb5fe41fb166b5b588ec73e2e9331489c632)
Conflicts:
sc/source/filter/xml/xmlcelli.cxx
Change-Id: I84fa4cec50172ccd02eca1042c8fafb93d1cfc73
---
M sc/source/filter/xml/xmlcelli.cxx
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/sc/source/filter/xml/xmlcelli.cxx b/sc/source/filter/xml/xmlcelli.cxx
index 42714a1..e9776ec 100644
--- a/sc/source/filter/xml/xmlcelli.cxx
+++ b/sc/source/filter/xml/xmlcelli.cxx
@@ -956,8 +956,7 @@
bool ScXMLTableRowCellContext::HasSpecialContent() const
{
- return ( (pContentValidationName && !pContentValidationName->isEmpty()) ||
- mxAnnotationData.get() || pDetectiveObjVec || pCellRangeSource );
+ return (mxAnnotationData.get() || pDetectiveObjVec || pCellRangeSource);
}
bool ScXMLTableRowCellContext::CellsAreRepeated() const
--
To view, visit https://gerrit.libreoffice.org/2128
To unsubscribe, visit https://gerrit.libreoffice.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I84fa4cec50172ccd02eca1042c8fafb93d1cfc73
Gerrit-PatchSet: 1
Gerrit-Project: core
Gerrit-Branch: libreoffice-4-0
Gerrit-Owner: Kohei Yoshida <kohei.yoshida@gmail.com>
Context
- [PATCH libreoffice-4-0] bnc#802350: Cell validation is not a special (cell) content. · Kohei Yoshida (via Code Review)
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.