https://bugs.freedesktop.org/show_bug.cgi?id=79422

--- Comment #12 from Seyeong Kim <[email protected]> ---
right

if there are around 40000 rows. then assume that replaced 6200 rows.

Join() called 6200 count and 

inside Join(), loop from 0~0 to 0~6200. this is actual replace job.

after replaceall, trigger to call Join() every time above.

below is function call i found.

1. when push replaceall button

in sc directory

something more for handle click
ScDocument::SearchAndReplace
ScTable::SearchAndReplace
ScTable::ReplaceAll
ScRangeList::Join


2. triggering every time

svx/source/dialog/srchdlg.cxx
IMPL_LINK(SvxSearchDialog, TimeoutHdl_Impl, Timer*, pTimer)
trigerring

then in sc directory

ScDocument::GetSelectionFunction
ScTable::UpdateSelectionFunction
ScColumn::UpdateSelectionFunction ( here loop 1024 if selected col is only 1 )
ColumnSpanSet::set
ScMarkData::GetMarkedRanges
ScMarkData::FillRangeListWithMarks
ScRangeList::Join ( slow )


I disabled #2 function. then after replace all cpu 100% usage not happened.
i know it's wrong but i just tested.

I modified ScColumn::UpdateSelectionFunction to loop only selected col times
for testing.
but it was not enough.

-- 
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
Libreoffice-bugs mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/libreoffice-bugs

Reply via email to