[REVIEW-3-6] fix for i#118877, don't remove ScPAtternAttr from doc pool when swapping rows/cols

Markus Mohrhard markus.mohrhard at googlemail.com
Mon Jul 16 08:08:34 PDT 2012


2012/7/13 Eike Rathke <erack at redhat.com>:
> Hi Markus,
>
> On Friday, 2012-07-13 20:39:07 +0200, Markus Mohrhard wrote:
>
>> In case of swapping we don't need all the special cases of ScAttrArray
>> for finding the right place and inserting removing from the doc pool,
>> we can just exchange the two pointers which is faster and does not
>> require manual manipulation of ref counts.
>
> But, exchanging pointers works correctly only if both patterns cover
> exactly one row each, not if one or both apply to more rows. So, while
> inserting/removing from docpool may not be needed, splitting or merging
> the area still is.
>
> Or what do I miss? I didn't try the patch.

Yeap you were right. I missed one part of ScAttrArray.

[1] is a correct but much more ugly fix. It is more or less manual ref
count manipulation without actually making the ref count methods
public as the AOO patch did. I'd prefer a better solution but after
thinking about all corner cases I don't see a good solution that will
not require ref count manipulation in one or the other way.

Regards,
Markus

[1] http://cgit.freedesktop.org/libreoffice/core/commit/?id=ab9b5639b23ab5db93357bd076b65adea1b6e8b6


More information about the LibreOffice mailing list