tdf#108608 Draw file unresponsive on large text pasted into textbox
We have O(n^2) algorithm here. The stack trace looks like: ImpEditEngine::CalcTextWidth EditEngine::CalcTextWidth Outliner::CalcTextSize SvxOutlinerForwarder::GetParaBounds SvxAccessibleTextAdapter::GetParaBounds accessibility::AccessibleEditableTextPara::getBounds ... OutlinerView::PasteSpecial where AccessibleEditableTextPara::getBounds iterates over all paragraphs, and so does ImpEditEngine::CalcTextWidth. To solve this, push the logic down from SvxOutlinerForwarder::GetParaBounds, to new logic in EditEngine and ImpEditEngine, where we can optimise the width calculation. Note that this means that the width returned for a specific paragraph is no longer the maximum width of all paragraphs, lets hope that does not cause regressions. Change-Id: I9f879d9a67b16a4aec08915328c99961b7313c2f Reviewed-on: https://gerrit.libreoffice.org/52369Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Showing
Please
register
or
sign in
to comment