Age | Commit message (Collapse) | Author |
|
ScPatternAttr is traditionally derived from SfxPoolItem
(or better: SfxSetItem) and held in the ScDocumentPool
as Item.
This is only because of 'using' the 'poolable'
functionality of the Item/ItemSet/ItemPool mechanism.
Lots of hacks were added to sc and Item/ItemSet/
ItemPool to make that 'work' which shows already that
this relationship is not optimal.
It uses DirectPutItemInPool/DirectRemoveItemFromPool
to do so, also with massive overhead to do that (and
with not much success). The RefCnt in the SfxPoolItem
that is used for this never worked reliably, so the
SfxItemPool was (ab)used as garbage collector (all
Items added and never removed get deleted at last
for good when the Pool goes down). For this reasons
and to be able to further get ItemSets modernized
I changed this. I did two big changes here:
(1) No longer derive ScPatternAttr from SfxItemSet/
SfxSetItem, no longer hold as SfxPoolItem
(2) Add tooling to reliably control the lifetime of
ScPatternAttr instances and ther uniqueness/
reusage for memory reasons
It is now a regular non-derived class. The SfxItemSet
formally derived from SfxSetItem is now a member. The
RefCnt is now also a member (so independent from
size/data type of SfxPoolItem). All in all it's pretty
much the same size as before.
To support handling it I created a CellAttributeHelper
that is at/owned by ScDocument and takes over tooling
to handle the ScPatternAttr. It supports to guarantee
the uniqueness of incarnated ScPatternAttr instances for
a ScDocument by providing helpers like registerAndCheck
and doUnregister. It hosts the default CellAttribute/
ScPatternAttr. That default handling was anyways not
using the standard default-handling of Items/Pools.
I adapted whole SC to use that mainly by replacing calls
to DirectPutItemInPool with registerAndCheck and
DirectRemoveItemFromPool with doUnregister, BUT: This
was not sufficient, the RefCnt kept to be broken.
For that reason I decided to also do (2) in this change:
I added a CellAttributeHolder that owns/regulates the
lifetime of a single ScPatternAttr. Originally it also
contained the CellAttributeHolder, but after some
thoughts I decided that this is not needed - if there
is no ScPatternAttr set, no CellAttributeHolder is
needed for safe cleanup at destruction of the helper.
So I moved/added the CellAttributeHolder to ScPatternAttr
where it belongs more naturally anyways. The big plus is
that CellAttributeHolder is just one ptr, so not bigger
than having a simple ScPatternAttr*. That way, e.g.
ScAttrEntry in ScAttrArray did not 'grow' at all. In
principle all places where a ScPatternAttr* is used can
now be replaced by using a CellAttributeHolder, except
for construction. It is capable to be initialized with
either ScPatternAttr instances from the heap (it creates
a copy that then gets RefCounted) or allocated (it
supports ownership change at construction time).
Note that ScAttrEntry started to get more a C++ class
in that change, it has a constructor. I did not change
the SCROW member, but that should also be done.
Also made registerAndCheck/doUnregister private in
CellAttributeHelper and exclusively used by
CellAttributeHolder. That way the RefCnt works, and a
lot of code gets much simpler (check ScItemPoolCache,
it's now straightforward) and safer and ~ScPatternAttr()
uses now a hard
assert(!isRegistered());
which shows that RefCnt works now (the 1st time?).
There can be done more (see ToDo section below) but I
myself will concentrate on getting ItemSets forward.
This decoupling makes both involved mechanisms more safe,
less complex and more stable. It also opens up
possibilities to further optimize ScPatternAttr in SC
without further hacking Item/ItemSet/ItemPool stuff.
NOTE: ScPatternAttr *should* be renamed to 'CellAttribute'
which describes what it is. The experiencd devs may know
what it does, but it is a hindrance for understanding for
attacting new devs. I already used now names like
CellAttributeHelper/CellAttributeHolder etc., but
abstained from renaming ScPatternAttr, see ToDo list below.
SfxItemSet discussion:
ScPatternAttr still contains a SfxItemSet, or better, a
SfxSetItem. For that reason it still depends on access to
an SfxItemPool (so there is acces in CellAttributeHelper).
This is in principle not needed - no Item (in the range
[ATTR_PATTERN_START .. ATTR_PATTERN_END]) needs that.
In principle ScPatternAttr could now do it's own handling
of those needed Items, however this might be done (linear
array, hash-by-WhichID, ...). The Items get translated
to and from this to the rest of the office anyways.
Note that *merging* of SfxItemSets is *still* needed what
means to have WhichID slots in SfxItemState::DONTCARE,
see note in ScPatternAttr::ScPatternAttr about that. And
there is also the Surrogates stuff which would have to be
checked.
The other extreme is to use SfxItemSet *more*, e.g. directly
derive from SfxItemSet what would make stuff easier, maybe
even get back to using the 'regular' Items like all office,
I doubt that that would be much slower, so why...?
Also possible is to remove that range of Items exclusively
used by ScPatternAttr from ScDocumentPool *completely* and
create an own Pool for them, owned by CellAttributeHelper.
That Pool might even be static global, so all SC Docs could
share all those Items - maybe even the ScPatternAttr
themselves (except the default per document). That would
remove the dependency of ScPatternAttr from a Pool
completely.
ToDo-List:
- rename ScPatternAttr to CellAttribute or similar
- use SfxItemSetFixed with range [ATTR_PATTERN_START
.. ATTR_PATTERN_END] instead of regular SfxItemSet
(if the copy-construtor works now...?)
- maybe create own/separate Pool for exclusive Items
- make ScAttrEntry more a C++ class by moving SCROW
to the private section, add get/set methods and
adapt SC
Had to add some more usages of CellAttributeHolder
to the SC Sort mechanism, there were situations where
the sorted ScPatternAttr were replaced in the Table,
but the 'sorted' ones were just ScPatternAttr*, thus
deleting the valid ones in the Table already. Using
CellAttributeHolder makes this safe, too.
Added a small, one-entry cache to CellAttributeHelper
to buffer the last found buffered ScPattrnAttr. It
has a HitRate of ca. 5-6% and brings the UnitTest
testSheetCellRangeProperties from 0m48,710s to
0m37,556s. Not too massive, but erery bit counts :-)
Also shows that after that change optimizations in
the now split functionality is possible and easy.
Change-Id: I268a7b2a943ce5ddfe3c75b5e648c0f6b0cedb85
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161244
Tested-by: Jenkins
Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
|
|
...and adapted code to make use of it. This makes checking if
the SfxPoolItemHolder instance contains an Item or not simpler
and thus more readable, no need to access the Item* every time
using getItem() - is okay, but not intuitive.
Change-Id: I8042267cce670aca2641a91cd36285058f17ffbb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161380
Tested-by: Jenkins
Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
|
|
In readonly mode, Online users need to be able to click on a hyperlink and get the related info.
For this purpose, this PR adds a new function template that sends the hyperlink info if there is any at the clicked position.
I will send the implementation with the next commit.
Signed-off-by: Gökay Şatır <gokaysatir@collabora.com>
Change-Id: I886ea22a7097aac73ade0da78a88ddfc95ad819c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160022
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161372
Tested-by: Jenkins
|
|
It is not doing anything useful anymore since 2016
commit 2c8fe2e737b84ecd3dbac36a4fe6bd061bbd3bae
when all setter methods were removed as unused
Change-Id: If82c2d0a8007132d9521b43075506db5f8fa4389
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161238
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
|
|
Change-Id: I6362bfdde31e276c006be3799839e9c1ff4f82f6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161344
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
Remove copy/assign operator as they are not needed because they
are the same as default.
Change-Id: I1a71e5de8024680307a65e8b5540b250178f0a97
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161343
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
Change-Id: Icc15746bf2712bae446f16fd378f94f8be5ec61e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161342
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
Change-Id: Ib3682dd5df09162748aad4402108b2b3cec3a853
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161341
Tested-by: Tomaž Vajngerl <quikee@gmail.com>
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
Change-Id: I8c0ee3f6b0f4e20277e006c15fddbda6ba9c05e6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161340
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
Change-Id: I46fbaf9fea8308169f2ada19787684c87b0c3c5b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161338
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
It fixes asserts in various places where a message box wants to show
in Lok case
Change-Id: If3c18e92c131de640281f3365567d66b4e14e1ba
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161299
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
This class no longer notifies listeners since 2019
commit 3135d820d0172ef5695a4b97cec505e6ad03d67a
so presumably the listeners can be dropped as well.
The sd part tried to execute SID commands which seem
to be removed since 2004
commit f77ad7f15f53526714518bb3562ba7de4ba0d45e
Change-Id: I81d234aabe10b53278c89ffd846240507854d0c1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161237
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
|
|
and
cid#1545468 COPY_INSTEAD_OF_MOVE
cid#1545446 COPY_INSTEAD_OF_MOVE
cid#1545435 COPY_INSTEAD_OF_MOVE
cid#1545419 COPY_INSTEAD_OF_MOVE
cid#1545415 COPY_INSTEAD_OF_MOVE
cid#1545410 COPY_INSTEAD_OF_MOVE
cid#1545390 COPY_INSTEAD_OF_MOVE
cid#1545384 COPY_INSTEAD_OF_MOVE
cid#1545374 COPY_INSTEAD_OF_MOVE
cid#1545371 COPY_INSTEAD_OF_MOVE
cid#1545368 COPY_INSTEAD_OF_MOVE
cid#1545366 COPY_INSTEAD_OF_MOVE
cid#1545335 COPY_INSTEAD_OF_MOVE
cid#1545331 COPY_INSTEAD_OF_MOVE
cid#1545327 COPY_INSTEAD_OF_MOVE
cid#1545308 COPY_INSTEAD_OF_MOVE
cid#1545280 COPY_INSTEAD_OF_MOVE
cid#1545199 COPY_INSTEAD_OF_MOVE
Change-Id: If05a13125b05ccd93d34d0eced566e7b3b58aaef
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161256
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
|
|
just use the wrapped officecfg methods instead of:
GetIsAllowAnimatedGraphics
GetIsAllowAnimatedText
GetIsAutomaticFontColor
IsSelectionInReadonly
Change-Id: I74de75fc9ff2f9a36ef376255e937bb373055587
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161236
Tested-by: Jenkins
Reviewed-by: Gabor Kelemen <kelemeng@ubuntu.com>
|
|
to see if some exclusions became obsolete
Change-Id: Id88351f5448511b35994c58c6cb749784da3b45e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156993
Tested-by: Jenkins
Reviewed-by: Gabor Kelemen <kelemeng@ubuntu.com>
|
|
Change-Id: I859138dee575ef7fd76db28b619c673782914782
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161235
Tested-by: Jenkins
Reviewed-by: Gabor Kelemen <kelemeng@ubuntu.com>
|
|
This script was broken, not only in the implementation
(it gives too many false positives in a suspiciously short, <1s time)
but in its approach as well: only considering stuff that is compiled
under Linux inherently leaves out other platform specific or experimental
stuff.
Rewrite it using another approach: grep for mentions of each
header in the modules or global ones in include/ everywhere.
Runtime of this script is about 15 minutes, seems to give only
a few relevant hits.
Change-Id: Ifb92f41f11ca9a2bf14eec617a469003becb78fa
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161234
Tested-by: Jenkins
Reviewed-by: Gabor Kelemen <kelemeng@ubuntu.com>
|
|
while I think the idea is that the copy on write should only
be done by OInterfaceContainerHelper3, i.e. that ownership
really transfers to OInterfaceIteratorHelper3 and OInterfaceContainerHelper3
makes a new one if that turns out to be necessary
Change-Id: I6e97e3b303f133edbbb35ac23f39cf5348ad49fe
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161257
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
|
|
and
cid#1545519 COPY_INSTEAD_OF_MOVE
cid#1545516 COPY_INSTEAD_OF_MOVE
cid#1545501 COPY_INSTEAD_OF_MOVE
Change-Id: Icc6efaf8c8fe06c7acd629ef77eac6b228b98f4b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161255
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
|
|
By default, the layout idle timer in the InterimWindowItem
class is set to TaskPriority::RESIZE. That is too high of
a priority as it appears that other timers are drawing
after the scrollbar has been redrawn.
As a result, when swiping, the content moves fluidly but
the scrollbar thumb does not move until after swiping
stops or pauses. Then, after a short lag, the scrollbar
thumb finally "jumps" to the expected position.
So, to fix this scrollbar "stickiness" when swiping,
setting the priority to TaskPriority::POST_PAINT causes
the scrollbar to be redrawn after any competing timers.
Change-Id: I8c0772fc40ddc690ee59c6267c1c50971f4ff238
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161184
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Reviewed-by: Patrick Luby <plubius@libreoffice.org>
|
|
which requires
(*) keeping ColorPicker alive during the runAsync in
ColorPicker::startExecuteModal
(*) keeping the PaletteManager alive during the ExecuteAsync in
PaletteManager::PopupCOlorPicker
Noting that MattK debugged the cause of this.
Change-Id: I07efe8e6514f8882b1347c79c6150578c234bb9d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161054
Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
After
author Armin Le Grand (allotropia) <armin.le.grand.extern@allotropia.de> 2023-12-20 19:42:28 +0100
committer Armin Le Grand <Armin.Le.Grand@me.com> 2023-12-21 21:13:55 +0100
commit 789a737ac92c4f2b0eb9820b99c43cc8253c8b29 (patch)
tree bc167ec04de29e63168844be973f59980fa36ac2
parent 3430a2c639a9f714259f9d319515464a653d21ab (diff)
Remove DeleteItemOnIdlex
it fails with
/home/xisco/libreoffice/include/svl/itemset.hxx: In member function ‘SfxItemPool& SfxPoolItemHolder::getPool() const’:
/home/xisco/libreoffice/include/svl/itemset.hxx:64:44: error: ‘isDeleted’ was not declared in this scope
64 | SfxItemPool& getPool() const { assert(!isDeleted() && "Destructed instance used (!)"); return *m_pPool; }
| ^~~~~~~~~
/home/xisco/libreoffice/include/svl/itemset.hxx: In member function ‘const SfxPoolItem* SfxPoolItemHolder::getItem() const’:
/home/xisco/libreoffice/include/svl/itemset.hxx:65:50: error: ‘isDeleted’ was not declared in this scope
65 | const SfxPoolItem* getItem() const { assert(!isDeleted() && "Destructed instance used (!)"); return m_pItem; }
| ^~~~~~~~~
make[1]: *** [/home/xisco/libreoffice/solenv/gbuild/LinkTarget.mk:340: /home/xisco/libreoffice/workdir/CxxObject/svl/source/items/itemiter.o] Error 1
make[1]: *** Se espera a que terminen otras tareas....
In file included from /usr/include/c++/12/cassert:44,
from /home/xisco/libreoffice/include/svl/whichranges.hxx:16,
from /home/xisco/libreoffice/include/svl/itemset.hxx:30,
from /home/xisco/libreoffice/svl/source/items/sitem.cxx:23:
/home/xisco/libreoffice/include/svl/itemset.hxx: In member function ‘SfxItemPool& SfxPoolItemHolder::getPool() const’:
/home/xisco/libreoffice/include/svl/itemset.hxx:64:44: error: ‘isDeleted’ was not declared in this scope
64 | SfxItemPool& getPool() const { assert(!isDeleted() && "Destructed instance used (!)"); return *m_pPool; }
| ^~~~~~~~~
/home/xisco/libreoffice/include/svl/itemset.hxx: In member function ‘const SfxPoolItem* SfxPoolItemHolder::getItem() const’:
/home/xisco/libreoffice/include/svl/itemset.hxx:65:50: error: ‘isDeleted’ was not declared in this scope
65 | const SfxPoolItem* getItem() const { assert(!isDeleted() && "Destructed instance used (!)"); return m_pItem; }
| ^~~~~~~~~
make[1]: *** [/home/xisco/libreoffice/solenv/gbuild/LinkTarget.mk:337: /home/xisco/libreoffice/workdir/CxxObject/svl/source/items/sitem.o] Error 1
In file included from /usr/include/c++/12/cassert:44,
from /home/xisco/libreoffice/include/svl/whichranges.hxx:16,
from /home/xisco/libreoffice/include/svl/itemset.hxx:30,
from /home/xisco/libreoffice/svl/source/items/itemset.cxx:30:
/home/xisco/libreoffice/include/svl/itemset.hxx: In member function ‘SfxItemPool& SfxPoolItemHolder::getPool() const’:
/home/xisco/libreoffice/include/svl/itemset.hxx:64:44: error: ‘isDeleted’ was not declared in this scope
64 | SfxItemPool& getPool() const { assert(!isDeleted() && "Destructed instance used (!)"); return *m_pPool; }
| ^~~~~~~~~
/home/xisco/libreoffice/include/svl/itemset.hxx: In member function ‘const SfxPoolItem* SfxPoolItemHolder::getItem() const’:
/home/xisco/libreoffice/include/svl/itemset.hxx:65:50: error: ‘isDeleted’ was not declared in this scope
65 | const SfxPoolItem* getItem() const { assert(!isDeleted() && "Destructed instance used (!)"); return m_pItem; }
| ^~~~~~~~~
In file included from /usr/include/c++/12/cassert:44,
from /home/xisco/libreoffice/include/o3tl/sorted_vector.hxx:15,
from /home/xisco/libreoffice/include/svl/itempool.hxx:30,
from /home/xisco/libreoffice/svl/source/items/itemset.cxx:31:
/home/xisco/libreoffice/svl/source/items/itemset.cxx: In member function ‘const SfxPoolItemHolder& SfxPoolItemHolder::operator=(const SfxPoolItemHolder&)’:
/home/xisco/libreoffice/svl/source/items/itemset.cxx:120:13: error: ‘isDeleted’ was not declared in this scope
120 | assert(!isDeleted() && "Destructed instance used (!)");
| ^~~~~~~~~
/home/xisco/libreoffice/svl/source/items/itemset.cxx:121:21: error: ‘const class SfxPoolItemHolder’ has no member named ‘isDeleted’
121 | assert(!rHolder.isDeleted() && "Destructed instance used (!)");
| ^~~~~~~~~
/home/xisco/libreoffice/svl/source/items/itemset.cxx: In member function ‘bool SfxPoolItemHolder::operator==(const SfxPoolItemHolder&) const’:
/home/xisco/libreoffice/svl/source/items/itemset.cxx:139:13: error: ‘isDeleted’ was not declared in this scope
139 | assert(!isDeleted() && "Destructed instance used (!)");
| ^~~~~~~~~
/home/xisco/libreoffice/svl/source/items/itemset.cxx:140:21: error: ‘const class SfxPoolItemHolder’ has no member named ‘isDeleted’
140 | assert(!rHolder.isDeleted() && "Destructed instance used (!)");
| ^~~~~~~~~
make[1]: *** [/home/xisco/libreoffice/solenv/gbuild/LinkTarget.mk:337: /home/xisco/libreoffice/workdir/CxxObject/svl/source/items/itemset.o] Error 1
In file included from /usr/include/c++/12/cassert:44,
from /home/xisco/libreoffice/include/svl/itemset.hxx:23,
from /home/xisco/libreoffice/include/svl/setitem.hxx:25,
from /home/xisco/libreoffice/svl/source/items/itempool.cxx:21:
/home/xisco/libreoffice/include/svl/itemset.hxx: In member function ‘SfxItemPool& SfxPoolItemHolder::getPool() const’:
/home/xisco/libreoffice/include/svl/itemset.hxx:64:44: error: ‘isDeleted’ was not declared in this scope
64 | SfxItemPool& getPool() const { assert(!isDeleted() && "Destructed instance used (!)"); return *m_pPool; }
| ^~~~~~~~~
/home/xisco/libreoffice/include/svl/itemset.hxx: In member function ‘const SfxPoolItem* SfxPoolItemHolder::getItem() const’:
/home/xisco/libreoffice/include/svl/itemset.hxx:65:50: error: ‘isDeleted’ was not declared in this scope
65 | const SfxPoolItem* getItem() const { assert(!isDeleted() && "Destructed instance used (!)"); return m_pItem; }
| ^~~~~~~~~
make[1]: *** [/home/xisco/libreoffice/solenv/gbuild/LinkTarget.mk:337: /home/xisco/libreoffice/workdir/CxxObject/svl/source/items/itempool.o] Error 1
In file included from /usr/include/c++/12/cassert:44,
from /home/xisco/libreoffice/include/svl/whichranges.hxx:16,
from /home/xisco/libreoffice/include/svl/itemset.hxx:30,
from /home/xisco/libreoffice/include/svl/itemprop.hxx:26,
from /home/xisco/libreoffice/svl/source/items/itemprop.cxx:23:
/home/xisco/libreoffice/include/svl/itemset.hxx: In member function ‘SfxItemPool& SfxPoolItemHolder::getPool() const’:
/home/xisco/libreoffice/include/svl/itemset.hxx:64:44: error: ‘isDeleted’ was not declared in this scope
64 | SfxItemPool& getPool() const { assert(!isDeleted() && "Destructed instance used (!)"); return *m_pPool; }
| ^~~~~~~~~
/home/xisco/libreoffice/include/svl/itemset.hxx: In member function ‘const SfxPoolItem* SfxPoolItemHolder::getItem() const’:
/home/xisco/libreoffice/include/svl/itemset.hxx:65:50: error: ‘isDeleted’ was not declared in this scope
65 | const SfxPoolItem* getItem() const { assert(!isDeleted() && "Destructed instance used (!)"); return m_pItem; }
| ^~~~~~~~~
make[1]: *** [/home/xisco/libreoffice/solenv/gbuild/LinkTarget.mk:337: /home/xisco/libreoffice/workdir/CxxObject/svl/source/items/itemprop.o] Error 1
make: *** [Makefile:290: build] Error 2
Change-Id: I0f61738d4afbdfc06b372d6c5e5fff6f9f9f4e65
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161142
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
|
|
and
cid#1546492 COPY_INSTEAD_OF_MOVE
cid#1546468 COPY_INSTEAD_OF_MOVE
cid#1546431 COPY_INSTEAD_OF_MOVE
cid#1546382 COPY_INSTEAD_OF_MOVE
cid#1546350 COPY_INSTEAD_OF_MOVE
cid#1546336 COPY_INSTEAD_OF_MOVE
cid#1546314 COPY_INSTEAD_OF_MOVE
cid#1546152 COPY_INSTEAD_OF_MOVE
cid#1546094 COPY_INSTEAD_OF_MOVE
cid#1546077 COPY_INSTEAD_OF_MOVE
cid#1546047 COPY_INSTEAD_OF_MOVE
cid#1545213 COPY_INSTEAD_OF_MOVE
Change-Id: Ia51df9f9cbde755db4d2685e34f22676ed5eceff
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161141
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
|
|
This change just adds the flag "SfxChildWindowFlags::NEVERHIDE"
to the info passed around so that the dialogs are not treated as
invisible when executing SfxWorkWindow::ShowChildren_Impl.
Change-Id: I35f0be94132cee438b3be9f4b4217208617a1e77
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160660
Tested-by: Jenkins
Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
|
|
which naturally requires the data to achieve
Change-Id: If23e7dbd009f3d8e60422ec4d485b459d5721c8f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161135
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
|
|
There are some CrashReports in 7.6 which have
DeleteItemOnIdle on the stack, but there is nothing
reproducable. So I took a look...
I first thought it's a MCGR regression, due to classes
on the stack. But the Item involved is just random, can
happen with any Item.
Then I thought it may have to do with ITEM refactorings,
but it happens with DeleteItemOnIdle involved, so also
not the case. I already saw DeleteItemOnIdle when doing
these and qualified as 'hack' in the way. already
It is only on Windows and DeleteItemOnIdle is involved.
This again (took a deeper look now) is an old hack to
keep an SfxPoolItem 'alive' for some 'time'. For that,
it triggers an async reschedule which then deletes the
Item when being called. If the Item will be used after
that is pure coincidence - seems to work in most cases.
It seems as if for Windows the timing slightly changed
for some scenarios, so a reschedule is too early. This
can happen with this hack anytime.
DeleteItemOnIdle is used in scenarios where SfxPoolItem*
is e.g. returned, but is *not* anchored, so e.g. not
member of an SfxItemSet. Or in short: Lifetime is not
safe.
DeleteItemOnIdle exists since 1st import, but was
changed to AsyncEvent ca. 4 months ago (see
57145acf9ec47c23e307b7a5c0029d21d937cc35), so that may
have caused it. It is possible that these errors happen
on Windows since then. Before something more complicated
was used to delete it late, but surely also not really
safe.
Due to ITEM refactor I have the knowledge/tooling to
solve this. It will not be a 1-5 lines fix, but it is
a hack and in the way for further ITEM refactor anyways.
What we have nowadays is a SfxPoolItemHolder -> it's
like an SfxItemSet for a single Item. It safely holds/
controls the lifetime of an SfxPoolItem. It is already
used in quite some places. It helps to solve many hacks,
also the ones putting Items directly to the Pool - due
to there never was an alternative for that. In principle
the ItemPool/ItemSet/Item paradigm was never complete
without SfxPoolItemHolder.
Thus I started to fix that (and remove that hack for
good, sooo many changes over the years, sigh), but as
said is not straightforward. Will have to change
retvals of involved stuff to SfxPoolItemHolder - it's
just two pointers and designed to be copied (one is a
Pool, needed to cleanup when destructing).
CopyConstruct/destroy just counts the RefCnt up/down,
so cheap.
1st version compiling, let's check on gerrit...
Corrected one error in QueryState for securitypage, also
added some security features/asserts.
Change-Id: Ida49fd35ca88ead84b11d93e18b978cb9e395090
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161083
Tested-by: Jenkins
Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
|
|
As sberg mentioned in previous change this might be responsible
for heap-use-after-free problems. I took a look and it seems
to be possible that the timer calls back while deletion of the
helper is in progress, so I try now to first stop the timer
and then delete so that it cannot trigger. Will see if that
works - if not I might have to use another lock...
Change-Id: I1ae27d9ed890f352904cab18c3292b449659a3ce
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161128
Tested-by: Jenkins
Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
|
|
seen with Red Hat Developer Toolset 10
https: //github.com/CollaboraOnline/online/issues/6893#issuecomment-1866342284
Change-Id: I4a0e8ad028126dded678e971a6261d6725a6b06c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161129
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
|
|
When DisableActiveContent is set, provide now non-functional areas
meaningful error messages / popup dialogs.
Change-Id: I34bffee10fb0ba5c0194193f3d3d81b93d7dbd26
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160923
Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
Tested-by: Jenkins
|
|
If you try hard enough, it's possible to request an "add conditional
format" dialog in one view and have the dialog pop up in an other view.
This is related to cool#7853 but it focuses on the wider problem.
What happens is that sometimes we do want to execute an uno command in
an async way, e.g. one dialog opening an other dialog in its response
handler: making sure the dialog is not manually / synchronously spinning
the main loop while it's running is wanted. Also fixing each & every
async command dispatch manually would be a lot of work.
Fix the problem by remembering the current view in SfxHintPoster::Post()
as it posts events to the main loop and restoring that view if necessary
in SfxHintPoster::DoEvent_Impl().
Other comments:
- An alternative would be to just dispatch all these UNO commands
synchronously, but see above, there are cases where we want to stay
async, a nested main loop would be worse.
- An even more general fix would be to handle all calls to
Application::PostUserEvent(), but vcl doesn't know what is the
current view and would have trouble switching to that view (only sfx2
and higher up knows that), so do this only at a SfxHintPoster::Post()
level, this is already meant to fix all async uno commands.
- There was a single case in sd/ where we tried to dispatch an async
event while switching views, so switch to a sync command dispatch
there to avoid the problem. CppunitTest_sd_tiledrendering would hang
without this and would emit a warning in SfxHintPoster::Post().
- Restore the sc/ code to do its async dispatch as it used to, so now
CppunitTest_sc_tiledrendering's testOpenURL is a test case that covers
this change.
Change-Id: I765e618f55caad791aa1fe7569a32bcc31622525
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161071
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
|
|
It would fail to negate SAL_MIN_INT32.
Change-Id: Ia5d34fc31917cabee2a1b130ef69c91b202592fa
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161063
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
Change-Id: I4f79c30b9ab997d01e59a0dec76986e74abfc11f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161053
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
Change-Id: Ic97a2b313c6f7d9da540a8867f01362c2fe7b0d0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161052
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
Change-Id: I167f6ea5d740b5a53cd02a9b865e65ff980a8877
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160922
Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
Tested-by: Jenkins
|
|
When DisableActiveContent is set, embedded active content is
disabled (e.g. OLE). Therefore the existing ui insertion bits don't
function either. Disable them with a warning pop-up hinting "Active
content is disabled."
Change-Id: I14984684f22df6aff81af79d5a15589b5cae75fc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161055
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
|
|
Change-Id: I98dcc9cf0d2e3306275a25ed83dc5692211ed442
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160037
Tested-by: Jenkins
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
Reviewed-by: Hossein <hossein@libreoffice.org>
|
|
make VALGRIND=memcheck CppunitTest_tools_test
Conditional jump or move depends on uninitialised value(s)
at 0x13348ADA: BigInt::DivLong(BigInt const&, BigInt&, BigInt*) const (bigint.cxx:306)
by 0x13349A0A: BigInt::operator/=(BigInt const&) (bigint.cxx:635)
by 0x12A58F67: tools::BigIntTest::testLenB1() (test_bigint.cxx:103)
by 0x12A5C6A8: void std::__invoke_impl<void, void (tools::BigIntTest::*&)(), tools::BigIntTest*&>(std::__invoke_memfun_deref, void (tools::BigIntTest::*&)(), tools::BigIntTest*&) (invoke.h:74)
if ( (static_cast<sal_uInt64>(aTmpB.nNum[nLenB1 - 1]) * nQ) >
^ nLenB1 is 0
((nTmp - static_cast<sal_uInt64>(aTmpB.nNum[nLenB1]) * nQ) << 32) + aTmpA.nNum[j - 2])
Since:
commit bcbc0857bf4bc24b5ea36e445a367cce0a382da4
Date: Sun Dec 17 21:11:31 2023 +0300
Simplify BigInt
Co-authored-by: Mike Kaganski <mike.kaganski@collabora.com>
Change-Id: Id8dbff23f7b4312ba666e1443c41b7869713bfbc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160953
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
just use the wrapped officecfg methods instead of:
IsSolidDragCreate
IsRenderDecoratedTextDirect
IsRenderSimpleTextDirect
GetQuadratic3DRenderLimit
GetQuadraticFormControlRenderLimit
IsTransparentSelection
Change-Id: Ie0f3ec0f8fdbbf08facfff1a372c666c8a0c8979
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160654
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
|
|
Change-Id: Ie9848c31ee4969d61470dfb5b570e45848f0914d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160992
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
|
|
and
cid#1546498 COPY_INSTEAD_OF_MOVE
cid#1546384 COPY_INSTEAD_OF_MOVE
cid#1546376 COPY_INSTEAD_OF_MOVE
cid#1546374 COPY_INSTEAD_OF_MOVE
cid#1546373 COPY_INSTEAD_OF_MOVE
cid#1546368 COPY_INSTEAD_OF_MOVE
cid#1546365 COPY_INSTEAD_OF_MOVE
cid#1546356 COPY_INSTEAD_OF_MOVE
cid#1546340 COPY_INSTEAD_OF_MOVE
cid#1546266 COPY_INSTEAD_OF_MOVE
cid#1546236 COPY_INSTEAD_OF_MOVE
cid#1546188 COPY_INSTEAD_OF_MOVE
cid#1546178 COPY_INSTEAD_OF_MOVE
cid#1546166 COPY_INSTEAD_OF_MOVE
cid#1546156 COPY_INSTEAD_OF_MOVE
cid#1546144 COPY_INSTEAD_OF_MOVE
cid#1546143 COPY_INSTEAD_OF_MOVE
cid#1546100 COPY_INSTEAD_OF_MOVE
cid#1546078 COPY_INSTEAD_OF_MOVE
cid#1546041 COPY_INSTEAD_OF_MOVE
cid#1546036 COPY_INSTEAD_OF_MOVE
cid#1546033 COPY_INSTEAD_OF_MOVE
Change-Id: Ib3586d93198992e206baf5c2de5a663d5574aa3c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160979
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
|
|
There are the classes BufferedDecompositionPrimitive2D
and BufferedDecompositionGroupPrimitive2D that offer
a unified mechanism to preserve/buffer the decomposition
of a Primitive, independent of the complexity. This may
include e.g. the pixel representation of a 3D Scene,
for Charts/CustomShapes and others.
Until now these were refreshed when the objects change,
or when the buffered decomposition decides that it is
necessary, but there was no general mechanism in place
to clean these up while the Primitive owning them was
alive/used. This is not a big thing in Draw/Impress
since this would only be relevant when zooming deep into
a SdrPage, so the non-vislible parts would still hold
data that would not be needed. But for Calc and Writer
this is more relevant: A 3D Chart on the 1st page of a
Writer document would be held buffered all the time a
user would work on pages below that. This is good for
guaranteeing fast re-visualization when scrolling up
again, but until then would just block memory.
So I added this general mechanism that allows activating
flushing timer-based, on Seconds. The default is null
seconds, thus deactivated. It should only be used for
Primitives that can get expensive, not for all.
NOTE: I checked activating for all Primitives to be on
the safe side, works.
It is now (initially) activated for:
- GlowPrimitive2D
- GraphicPrimitive2D
- MetafilePrimitive2D
- ScenePrimitive2D
- ShadowPrimitive2D (softShadow)
- SoftEdgePrimitive2D
- SdrCustomShapePrimitive2D
- SdrGrafPrimitive2D
These are the usual suspects that may use some memory
to buffer their decomposition (for good reasons, each
repaint uses it). Other Primitives which may show need
to be treated this way can easily be added, just by
calling setCallbackSeconds(s) in their constructor. This
is true for all Primitives derived from the two classes
mentioned above.
NOTE: Too short buffering times are *not* useful - e.g.
for a expensive-to-be-recreated 3D chart representation
this may not pay out, so I chose times in a way that try
to respect this.
NOTE: This change needs
7397fa7cdfc33f5a079df42e4d6cfa59ae9e062d to work
correctly (thanks to sberg for this). Without this the
office hangs/does not terminate regularly in trying to
destroy the 'TimerManager'.
Change-Id: Id4802afcb6d12480bb2935cc1ef67fe443b3b788
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160926
Tested-by: Jenkins
Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
|
|
and
cid#1545241 COPY_INSTEAD_OF_MOVE
cid#1545303 COPY_INSTEAD_OF_MOVE
cid#1545315 COPY_INSTEAD_OF_MOVE
cid#1545319 COPY_INSTEAD_OF_MOVE
cid#1545322 COPY_INSTEAD_OF_MOVE
Change-Id: I284ba6e395f72abd7939667a8367ac99ab64194d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160955
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
|
|
Add reporting for the new CHECKABLE a11y state introduced in
commit d6c6472bbe1c90b733a4d69c4c8528f4de3750d3
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Mon Nov 13 15:53:44 2023 +0100
tdf#123864 a11y: Add new AccessibleStateType::CHECKABLE
for `VCLXAccessibleMenuItem`.
`MenuItemData::HasCheck` looks like it already provides
what's needed to say whether an item is checkable, therefore
add a `Menu::IsItemCheckable` that makes use of this and
and a `VCLXAccessibleMenuItem::IsCheckable` that
makes use of that in turn.
Extend `VCLXAccessibleMenuItem::FillAccessibleStateSet` to
use the latter to report the CHECKABLE state accordingly.
Change-Id: Id23196ef2527a71a338102a5143a8bd6fd41db84
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160902
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
|
|
which flushes out the fact that, previously, when
SfxItemSetFixed was being copied, we were not
actually taking advantage of the "internal" memory,
and were actually allocating a separate block of memory,
like a "normal" SfxItemSet.
Change-Id: I6a8073c58b464d53bfd2a54cf1dd27a3f2cb3df7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160377
Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
The paragraph text may become shorter after the function succeeds,
because it may remove arbitrary number of preceding spaces; since
the position may then be used to access data in the string in the
caller, we need to update it, to avoid use of old position (which
may point beyond the string, and produce a crash; or it may point
to a wrong position in it).
Change-Id: Ib1b4b63cbd7150e0f69c97032e3410db7dadd4dc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160924
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
Regression from commit b8521d969ab5be4fc947e467d4afe969f9d3b563
(tdf#157263 sw floattable: prefer join over split after moving fwd,
2023-09-25), enabling Options -> Writer -> Formatting Aids -> Hidden
Characters, then opening the bugdoc, finally Toggle Print Preview on the
toolbar resulted in a crash.
We have a memory corruption here:
==11968==ERROR: AddressSanitizer: heap-use-after-free on address 0x60f0000734e0 at pc 0x7f473822d2ee bp 0x7fffdadd3660 sp 0x7fffdadd3658
READ of size 8 at 0x60f0000734e0 thread T0
#0 0x7f473822d2ed in rtl::Reference<FmXFormShell>::operator->() const /include/rtl/ref.hxx:216:9
#1 0x7f473821feeb in FmFormShell::IsActiveControl() const /svx/source/form/fmshell.cxx:1227:12
#2 0x7f46dad4d52a in SwView::SelectShell() /sw/source/uibase/uiview/view.cxx:296:40
#3 0x7f46dad496a6 in SwView::AttrChangedNotify(LinkParamNone*) /sw/source/uibase/uiview/view.cxx:572:13
...
#32 0x7f4748944cda in SfxViewFrame::SwitchToViewShell_Impl(unsigned short, bool) /sfx2/source/view/viewfrm.cxx:2552:32
#33 0x7f47488f4e3b in SfxViewFrame::ExecView_Impl(SfxRequest&) /sfx2/source/view/viewfrm.cxx:2637:29
freed by thread T0 here:
#0 0x5568ff2f9a7b in operator delete(void*, unsigned long) /home/abuild/rpmbuild/BUILD/llvm-15.0.7.src/build/../projects/compiler-rt/lib/asan/asan_new_delete.cpp:164:3
#1 0x7f4738214346 in FmFormShell::~FmFormShell() /svx/source/form/fmshell.cxx:181:1
#2 0x7f4746b04b9d in SfxDispatcher::FlushImpl() /sfx2/source/control/dispatch.cxx:1412:13
#3 0x7f4746aff767 in SfxDispatcher::Flush() /sfx2/source/control/dispatch.cxx:157:26
#4 0x7f47489100dc in SfxViewFrame::PopShellAndSubShells_Impl(SfxViewShell&) /sfx2/source/view/viewfrm.cxx:1100:24
#5 0x7f47489441a3 in SfxViewFrame::SwitchToViewShell_Impl(unsigned short, bool) /sfx2/source/view/viewfrm.cxx:2538:13
#6 0x7f47488f4e3b in SfxViewFrame::ExecView_Impl(SfxRequest&) /sfx2/source/view/viewfrm.cxx:2637:29
I.e. a new SwPagePreview replaces the old SwView, but the order is that
SfxViewFrame::SwitchToViewShell_Impl() starts with deleting the
SfxShells of the old SwView in PopShellAndSubShells_Impl(), then it
creates the new shell, finally deletes the old shell. Given that the new
shell hides hidden characters and the old shell did not, this triggers a
size notification for the half-deleted old shell and we crash.
Seeing that SwView::AttrChangedNotify() already had code to delay the
selection of an SfxShell in the old SwView, fix the problem by
introducing a new flag that allows not selecting an SfxShell at all if
the old view is known to be deleted in the near future anyway.
An alternative would be to make sure that all relevant pointers are
maintained using an SfxBroadcaster / SfxListener protocol, but after
fixing some 4 of them and that's still not enough, probably it's better
to handle this at a higher level. It's also a bit unclear how this
"worked" in the past; looks like the old view didn't get the size change
notification by accident.
Change-Id: I423ff946f8235848cc3a870bc52fcf88a721fd2b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160925
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
|
|
and move it to its own header file to make the include dependencies
easier to handle
Change-Id: I9449ebd70d83be332e47e1786422697f76175e53
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160905
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
See tdf#94879 for motivation.
Change-Id: I5f666424a2f9cd2206f37b4440d54452e339e3e1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160891
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
|
|
Change-Id: I1b88648a84760ea16f32566fe0d88e402c328987
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160888
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
and
cid#1545957 COPY_INSTEAD_OF_MOVE
cid#1545944 COPY_INSTEAD_OF_MOVE
cid#1545939 COPY_INSTEAD_OF_MOVE
cid#1545931 COPY_INSTEAD_OF_MOVE
cid#1545926 COPY_INSTEAD_OF_MOVE
cid#1545909 COPY_INSTEAD_OF_MOVE
cid#1545899 COPY_INSTEAD_OF_MOVE
cid#1545896 COPY_INSTEAD_OF_MOVE
cid#1545894 COPY_INSTEAD_OF_MOVE
cid#1545858 COPY_INSTEAD_OF_MOVE
cid#1545823 COPY_INSTEAD_OF_MOVE
cid#1545820 COPY_INSTEAD_OF_MOVE
cid#1545819 COPY_INSTEAD_OF_MOVE
cid#1545772 COPY_INSTEAD_OF_MOVE
cid#1545749 COPY_INSTEAD_OF_MOVE
cid#1545743 COPY_INSTEAD_OF_MOVE
cid#1545739 COPY_INSTEAD_OF_MOVE
cid#1545635 COPY_INSTEAD_OF_MOVE
cid#1545603 COPY_INSTEAD_OF_MOVE
cid#1545602 COPY_INSTEAD_OF_MOVE
cid#1545592 COPY_INSTEAD_OF_MOVE
cid#1545544 COPY_INSTEAD_OF_MOVE
cid#1545532 COPY_INSTEAD_OF_MOVE
cid#1545520 COPY_INSTEAD_OF_MOVE
cid#1545512 COPY_INSTEAD_OF_MOVE
cid#1545490 COPY_INSTEAD_OF_MOVE
cid#1545483 COPY_INSTEAD_OF_MOVE
cid#1545467 COPY_INSTEAD_OF_MOVE
cid#1545461 COPY_INSTEAD_OF_MOVE
cid#1545458 COPY_INSTEAD_OF_MOVE
cid#1545428 COPY_INSTEAD_OF_MOVE
cid#1545394 COPY_INSTEAD_OF_MOVE
cid#1545385 COPY_INSTEAD_OF_MOVE
cid#1545383 COPY_INSTEAD_OF_MOVE
cid#1545366 COPY_INSTEAD_OF_MOVE
cid#1545357 COPY_INSTEAD_OF_MOVE
Change-Id: I76224326977b4067b94ca3176cad1ca6de17930a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160847
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
|