summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2013-05-20We don't need this patch anymore.Kohei Yoshida2-26/+0
Change-Id: Id6b787096d15c40903661fa3d309e8131b655752
2013-05-20Update mdds to 0.8.1.Kohei Yoshida2-2/+2
Change-Id: If6c1a8a88e9996527d3fcf350a00a72a3866ef4f
2013-05-20Test performance of pasting of formula cells as well.Kohei Yoshida1-0/+94
Undo and redo of this are still a bit slow. Not fast enough to be reliably tested. Change-Id: I0e0b4c16e55bae60f8d7b1db71347a93eb977de8
2013-05-20Another performance scenario. Pasting of cells interspersed with empty ones.Kohei Yoshida1-0/+92
Change-Id: Ia03af65dc1daf13e1228cacc20ce931839305ab8
2013-05-20A bit cleaner way to measure time segment.Kohei Yoshida1-21/+40
Change-Id: I999baaa3acba5513a148542fa28f7ae43dd7ee4f
2013-05-20Make these stack variables & fix one memory leak with the undo object.Kohei Yoshida1-9/+6
Change-Id: I1dd2bf0fc843394502119928c921913131c86f7e
2013-05-20Add performance test for repeat-pasting cell to a large cell range.Kohei Yoshida7-0/+116
Change-Id: I98dcdb1e0a72f2c3ad6f33c7b6b7d4a4bcf89096
2013-05-20Ditto when purging broadcasters.Kohei Yoshida9-44/+26
Change-Id: I632d617cad76485f7e1f57daa7db4d4cfa775e8b
2013-05-20A bit of cleanup.Kohei Yoshida1-6/+9
Change-Id: I9f200377c1f5bf44eb4ba60c272b02ae3d632a19
2013-05-20Do the same trick when getting broadcasters during mass formula cell deletion.Kohei Yoshida3-3/+20
Change-Id: Iee1b3ff637d10c6bd2d2342db518a2fc986327b7
2013-05-20Keep track of column block positions when mass-pasting formula cells.Kohei Yoshida13-41/+165
This speeds up the following scenario: 1) type =B1 in A1. Leave A2 empty. 2) Select A1:A2 and Ctrl-C to copy. 3) Select A3:A50000 (or longer if you so wish), and ctrl-V to paste. This causes the broadcaster storage array in column B to be heavily partitioned due to the empty cells interspersed between formula cells in column A. Without tracking the column position this would cause a O(n^2) complexity algorithm. Change-Id: Ic2f23c2c2bea3353c517faa73fe5412c7528bd95
2013-05-20A bit of cleanup before refactoring.Kohei Yoshida1-35/+14
Change-Id: I3627a83669b6a69c299aef96b8b2ead1352eabe2
2013-05-20Prefer early bail-out.Kohei Yoshida1-35/+38
Change-Id: I112a4be56910c07007b28715336fcd82d56bb313
2013-05-20Compiler warning.Kohei Yoshida1-2/+1
Change-Id: I6f358f89348a23b3c70f8b7db8a1f01d659393ba
2013-05-20Optimize ScColumn::MixData() to remove several bottlenecks.Kohei Yoshida4-16/+77
The use case that would previously make Calc freeze. 1) type in "test" in A1. 2) Select A1:A2 and Ctrl-C to copy to the clipboard. 3) select the whole column B. 4) paste special, select "Add" operation and click OK to paste. With this change, the above scenario no longer freezes Calc. Change-Id: I98b1f1e6c25b853aa884e7598c04b1457fab4636
2013-05-20A bit of a cleanup.Kohei Yoshida6-75/+27
Change-Id: Iaa7003cabee4630e4fbb8fb1cd114d04b4e9e33c
2013-05-20Keep track of column block positions in ScDocumentImport too.Kohei Yoshida4-22/+101
This currently only affects document import via orcus, but it'll be good to put this in place. Change-Id: I8cc6d54aba6fab1f2774127f92c2a764f7b690fb
2013-05-20Same with MixDocument(). But this one has additional bottleneck...Kohei Yoshida8-27/+86
With the removal of existing cells. So, this change is not enough to make this operation fly. Change-Id: Ic468375f6d0c28e2cc7d5391fb0565d53ee7fb4e
2013-05-20Make it exception safe.Kohei Yoshida1-8/+5
Change-Id: Ib9b734ac9800b1ecf005dcd3a66beac6fcfc3a4f
2013-05-20Reuse CopyToDocContext for UndoTo*.Kohei Yoshida5-21/+20
UndoToDocument and its nested methods are tightly coupled with the CopyTo counterparts, and they both are used in the same undo / redo code.... Perhaps we can clean this up to reduce redundancy in the future. Change-Id: Id3aec60914ac3a87acbb53f889896a5850047c59
2013-05-20Do the same thing for CopyToDocument.Kohei Yoshida8-34/+89
This removes O(n^2) slowness from undo and redo of a large array of cells with empty cells in between. Change-Id: Id87c8ac8986c97ddf305f849a4752f0f92cc5899
2013-05-20Move the boolean flags to the context bucket.Kohei Yoshida7-21/+42
To reduce the number of function parameters lower. Change-Id: I816bd7c27070597f5fcdf69bdc7d981279390ca6
2013-05-20Do the same optimization for CopyToClip.Kohei Yoshida7-48/+84
The basic idea is the same as the one I did for CopyFromClip. This prevents the O(n^2) algorithm from being invoked during undo object creation. Change-Id: Iac46663b0c25db2f00ffa3ab95a4dcf2857252ce
2013-05-20Get the script type in an efficient manner.Kohei Yoshida1-1/+2
This alone makes AdjustRowHeight() fly on large ranges, by eliminating the silly O(n^2) algorithm. Change-Id: Id2693aab7fb9b2a5575c6390fcaae5a404549962
2013-05-20Optimize ScViewFunc::GetSelectionScriptType().Kohei Yoshida13-69/+210
This change reduces the duration of this method from somewhere in the ballpark of 10 seconds down to a tiny fraction of a second. Change-Id: I0278dc06a4f134b43cd08bd94693b6dec4893f1f
2013-05-20Cleaned up a bit to remove the need to initialize the block positions.Kohei Yoshida3-62/+32
Change-Id: Iad2e69e4eb61167ad85581a83b19e3798c5edfd0
2013-05-20Speed up ScColumn::HasEditCells() by keeping track of block position.Kohei Yoshida7-26/+121
Use block position hint to avoid re-starting search in the cell text attribute array. This change alone cuts additional 10 seconds off of the previously mentioned use case, by reducing the duration of HasEditCells() call from the previous ~10 seconds to a tiny fraction of a second. Change-Id: Id9f951cd235a88928c900619b6b66d7b8a057e0c
2013-05-20Keep track of current block position when pasting a range of cells.Kohei Yoshida10-27/+213
This avoids re-starting the search for insertion position in the cell text attribute array, on every single cell insertion. Instead of always searching from the first position, it starts the seaarch from the previous insertion position. This reduces the paste time from the previous 3.5 seconds to 1.7 seconds on my machine. Here is the scenario. 1) Put =A1 in B1, and leave B2 empty. 2) Select B1:B2 and copy it via Ctrl-C. 3) Select B3:B50000, and paste via Ctrl-V. Because of the empty cells interspersing the destination range, this makes the data array highly partitioned, which makes the position lookup very very expensive without the position hint. Still, I was hoping the duration would become a fraction of a second. 1.7 seconds still seems a bit too slow... Change-Id: I7742ce7e22935b6d0e082e4569d53dbd2072c4e5
2013-05-20Move the column element block definitions out of ScColumn.Kohei Yoshida6-34/+33
so that I can reference it in another class. Change-Id: I035cc1d37ec219c3e3da2e180a0337fb3c6fba8a
2013-05-20Slightly shorter way of getting the element value.Kohei Yoshida1-3/+1
Change-Id: I9f56c7a54405a805cb843321bdab660a3ab22fd6
2013-05-20Avoid expensive element position lookup twice.Kohei Yoshida1-5/+29
This moderately improves the performance of pasting a large array of formula cells. Change-Id: I27a59ff348cb715df15db80693cb7d193e67ec2e
2013-05-20Remove unused function argument.Kohei Yoshida2-3/+3
Change-Id: I0b4deec7f4b10c7b14e482f61c667972caa30bc8
2013-05-20Move all clip params into the new context class. We don't need two buckets.Kohei Yoshida8-114/+152
Change-Id: Ida0542583242ebcdd7f1448931e31656aa542457
2013-05-20Introduce copy-from-clip context for copy handling code.Kohei Yoshida9-38/+93
It's not used yet, and is currently empty. Change-Id: Ia377994ae042fc8b19d269adc2f94830422770f1
2013-05-20Reduce indentation level by early bail-out.Kohei Yoshida1-151/+152
Change-Id: I5e108efa0219620696d15a304d2f4e3566d58d57
2013-05-20Add perf test for removal of large array of formula cells.Kohei Yoshida1-1/+26
Change-Id: I2fdf38b23e74a9f4cad7abd9a943e8817f39474c
2013-05-20Fix memory leak.Kohei Yoshida2-1/+4
Change-Id: I90e419d19f4565f7f20603358308fd7aeba83190
2013-05-20Remove duplicate code blocks.Kohei Yoshida1-77/+38
Change-Id: I945c7ae834393c760d8a552043c391ff0eb9ce22
2013-05-20Unit test for range deletion of broadcasters.Kohei Yoshida2-6/+31
Change-Id: I615c9f9e95a44149c8079754e9aa6497f34c76cf
2013-05-20Keep track of empty broadcaster segments, and delete them all in one go.Kohei Yoshida11-1/+217
This massively speeds up the deletion of a large group of adjacent formula cells. As an example, on machine, deletion of formula cells over B2:B109101 (109100 cells in total) got reduced from 4.7 seconds to 0.09 seconds). Change-Id: Ib72da42a6644421601111907cf7c899d828c2996
2013-05-20Collect all empty broadcasters and remove them in one go later.Kohei Yoshida13-1/+188
This is to avoid repeated calls to set_empty() on the broadcaster array which causes array reallocation on each call. Instead, we can store the segments of broadcasters to be deleted later, and call set_empty() on those segments to reduce the number of calls to set_empty(). The meat of this is not implemented yet, as EndListeningContext is still empty. Change-Id: I914bc2881acee3902c4fec0f6c21aaf4d2489df8
2013-05-20Move this code into ScDocument, for later refactoring.Kohei Yoshida3-15/+15
Change-Id: I4c34cd4b352dfafe7f423ab8e85f0d93c0368349
2013-05-20First (?) performance regression unit test against clearing of a sheet.Kohei Yoshida1-0/+52
I screwed this up earlier which made this operation take almost 50 seconds to complete. It should finish in 0.00001 seconds or less. The test checks against 1 second, which should be enough of a buffer for slower machines. Change-Id: I9923033045111c75a0740b6bb30a518fe93e01d2
2013-05-20Consolidate the text width and script type arrays into one.Kohei Yoshida7-141/+95
Since they are always in sync... Change-Id: Ic07f57e1804d76ae801c7947d18df5fd0d729632
2013-05-20Block definition for CellTextAttr.Kohei Yoshida6-6/+52
This block will be used to merge the text width and script type vectors that are currently separate. Text widths and script types should really be stored together. Change-Id: I6783769cc03180b513319e0a98a0773bd20ba941
2013-05-20Rename header: mtvelement -> multi_type_vector (mtv) elements.Kohei Yoshida2-1/+1
This header hosts custom element types and blocks used in multi_type_vector. Change-Id: I32481a2354d8c66eb877b4005a260a79183cd714
2013-05-21fix mdds check: remove extraneous "test"Rene Engelhard1-1/+1
Change-Id: I2c20a52e7f7688359172c9ccbd46b4b012bd4c02
2013-05-21This is most probably the way to get the mdds check rightFridrich Štrba1-41/+8
Change-Id: I65a6018c442769f89f17ee0023510c45373407e7
2013-05-20#i121134#, more fix for i119657, fallback to old logic to use current ↵Jian Fang Zhang1-0/+2
AbstractNum when the desired one can not find Found by: Li Lin Yi Patch by: Jinlong Wu,wujinlong@gmail.com Review by: zhangjf (cherry picked from commit aa53b457faaf0fc50a8b38d17bf219de427a1044)
2013-05-20Related: #i119657#, importing docx, add code to handle the problem...Jian Fang Zhang4-3/+56
that an AbstracNum references to a style, which references to another Num Found by: xiao ting xiao Patch by: Jinlong Wu,wujinlong@gmail.com Review by: zhangjf (cherry picked from commit d6870e145cc7373a422b414c31380cc1399e64cc) Conflicts: writerfilter/source/dmapper/DomainMapper.cxx writerfilter/source/dmapper/NumberingManager.cxx Change-Id: I9be0b82d601bf43da31842edb02c4b0d4e50e84f