Age | Commit message (Collapse) | Author |
|
ItemType is useful and faster than RTTI. Until now it was
implemented by a 16-bit member in the base class, plus
(potentially) all constructors having to hand a value
in at item construction type (of type SfxItemType) to
get that member set correctly.
This works, but there is no reliable way to guarantee
coverage, and there have already been cases with missing
SfxItemType - these fallback to '0' and thus all Items
with ItemType() == 0 are assumed equal and might be
static_cast'ed to the wrong classes. Note that I
identified *35* Items that had no correct ItemType
set/implemented actually. It also uses 16-bit per
incarnated Item at runtime.
I thought and realized now a more systematic approach
to do that with a pure virtual function at the Item
itself. That can also be secured by a clang compiler
plugin in the future to keep it working. It uses one
virtual function per derived class, no longer space
in incarnated Items. Also the constructors will get
more simple again.
But the main aspect is security - we cannot afford
Items potentially being held as equal if they are not.
Unfortunately C++ does not offer something like a
'strict pure virtual function' that would force to
be overloaded in every derivation, but the used
methotology and adding a clang test is reasonably
safe.
Have now done the cleanup of previous method.
Change-Id: I04768285f1e9b73d64b0bb87df401944b5d35678
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180017
Tested-by: Jenkins
Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
|
|
Reverts "PVS: V547 Expression 'bNoDictionaryAvailable' is always false"
This reverts commit 816b51c7a9cdd72eaa01f3c074ba5a8446917d19.
It removed the message completely from the code while, we should
fix it rather by using correct condition.
It was somehow too aggresively limited in commit f200dd5cb84681558700c49de0969907f78f8db1
tdf#86731 Don't show 'start from beginning' when dictionary is missing
Change-Id: I5f4b859047216399a09c7aefb8a47244c4833df5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177271
Tested-by: Jenkins
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
|
|
And drop EPosition, which duplicates EPaM, except for its default
ctor (used in a single place).
Change-Id: I48bb6dafcba84465d61579df0ec71b815945532a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177075
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
|
|
Since
commit a50a2bf8e8c6084aeacb8d2db42e21f528410742
Author: Szymon Kłos <szymon.klos@collabora.com>
Date: Thu Jan 24 11:22:22 2019 +0100
tdf#86731 Don't show 'start from beginning' when dictionary is missing
Change-Id: Ib71051ddbb3318c74fb5020ec27560f1c6f73893
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177017
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
|
|
The SfxPoolItem has a new member SfxItemType m_eItemType to
compare types based on enums instead of typeinfo() which
consumes a lot of time e.g. while AutoFormat is running
Change-Id: I033ce67bc9a28ee4790f162380314de85fb4154e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166452
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
|
|
Change-Id: I4f4284b55d481caa006743688e6d83cc3c713b5c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168601
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
In order to reduce number of calls to GetMarkedObjectList() later on
Change-Id: Ib2eb7c88338e64744f886a338acca65f782f8170
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168218
Tested-by: Jenkins
Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
|
|
Change-Id: I37166c03ffd0f8f76ddc03ce556b6e6341a02b48
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167355
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
|
|
Change-Id: I56463130ab617b0e11e237718cb8456913373818
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165696
Tested-by: Jenkins
Reviewed-by: Gabor Kelemen <gabor.kelemen.extern@allotropia.de>
|
|
which means I can remove one usage of gb_Library_set_plugin_for, which
is blocking linking the sw module into --enable-mergelibs=more
Change-Id: I8c199421c66de2dcf339ccc2d5cb9340d3bea914
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164429
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Crashreport signature:
Fatal signal received: SIGSEGV code: 128 for address: 0x0
program/libswlo.so
SwSpellDialogChildWindow::GetNextWrongSentence(bool)
sw/source/uibase/dialog/SwSpellDialogChildWindow.cxx:824
program/libcuilo.so
svx::SpellDialog::GetNextSentence_Impl(std::unique_ptr<UndoChangeGroupGuard, std::default_delete<UndoChangeGroupGuard> >*, bool, bool)
/opt/rh/devtoolset-10/root/usr/include/c++/10/bits/stl_vector.h:919
program/libcuilo.so
svx::SpellDialog::SpellContinue_Impl(std::unique_ptr<UndoChangeGroupGuard, std::default_delete<UndoChangeGroupGuard> >*, bool, bool)
cui/source/dialogs/SpellDialog.cxx:370
/opt/collaboraoffice/program/libcuilo.so
svx::SpellDialog::InitHdl(void*)
/opt/rh/devtoolset-10/root/usr/include/c++/10/bits/unique_ptr.h:173
Change-Id: I0ecae218beb30e5136f7a6f468e3eb9f6e6e5009
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163637
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
|
|
We want our dialogs to be async so they don't lock documents when opened
and to allow concurrent edition.
In SwEditRegionDlg, we need to make sure the reference to the SwWrtShell
isn't read from 'this' after `response()`, as it is now the dialog is disposed of earlier in the async case.
How to test: Create a new Writer document, insert a section, right-click inside the section, pick the 'edit section' menu item to trigger this dialog.
Change-Id: Ibafca69542f13d16beef5a8fca006428cbcfe5c1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161828
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161830
Tested-by: Jenkins
Reviewed-by: Andras Timar <andras.timar@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>
|
|
Change-Id: I446cf00ac7e320586da2dd0837cf873ca9ab0ca6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157013
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I0b4b2854f5e82e78e63b01b78b949e27011630c9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153982
Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
various null checks can be seen to be redundant and removed
Change-Id: Icf49c1de4b0302795d2769a370af3abceaad0221
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/147147
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
|
When Zotero uses refmarks to represent citations, then a section is used
for the bibliography. While it was possible to insert refmarks with a
given name & content, inserting a section with a provided HTML content
was not possible.
A section (and not a refmark) is needed for the bibliography, as a
refmark is a text attribute, so it must start and end in the same
paragraph.
Fix this by adding a new, optional Content parameter to
.uno:InsertSection, which allows providing multi-paragraph, formatted
text.
This is somewhat similar to what commit
fa82e151d80d15eeb6dfae434f1dbb3b68907188 (sw, .uno:InsertBookmark: add a
new BookmarkText parameter and accept HTML there, 2022-12-06) did for
the bookmark case.
Change-Id: I0ccbc8a765fed4e019783d0b743c1cd2d0596093
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/145188
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
|
|
Change-Id: I42bef355eeef15e3733a5ee57b0569887cfa5e84
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142183
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Using a parameter to select point/mark makes the code much harder to
read
Change-Id: I4ac8b904ac423e2b99253b7e4b6adc72c8afe1a7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138083
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
as part of the process of hiding the internals of SwPosition
largely done by doing:
git grep -lF 'nContent.GetIndex' | xargs perl -pi -e
's/\bnContent\.GetIndex/GetContentIndex/g'
Change-Id: I12684071a6666c365dbadbab2a4b37cf51b274d5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137695
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I2c9023ba8d07314d23ae7a65e670e8748c5e9322
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133766
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Change-Id: I95b86fc081847da01e06f50a1b2c7e7f5456c638
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131529
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Ic82df8d321ba2eb94957236264c71c5eb9a940a7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130905
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
... and SwZoomControl
See tdf#94879 for motivation.
Change-Id: I74f31e45a8c215d406371a23b64d548fbb851d28
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125641
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
|
|
Change-Id: I69e188d7599b7fc439f613cec0a0967ccb748b7e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123313
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
... SwUINumRuleItem and SwWrtShellItem
See tdf#94879 for motivation.
Change-Id: I2b360aae78200fcc0a479ec76e895331c6a0e124
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123035
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
|
|
... in WhichRangesContainer and SfxItemSet ctors. Now it's not needed
to explicitly use 'value' in WhichRangesContainer's ctor, or create an
instance for use in SfxItemSet ctor (svl::Items is already defined as
a template value of corresponding type).
Instead of
WhichRangesContainer Foo(svl::Items<1, 2>::value);
SfxItemSet Bar(rItemPool, svl::Items<1, 2>{});
now use:
WhichRangesContainer Foo(svl::Items<1, 2>);
SfxItemSet Bar(rItemPool, svl::Items<1, 2>);
Change-Id: I4681d952b6442732025e5a26768098878907a238
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119157
Tested-by: Mike Kaganski <mike.kaganski@collabora.com>
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
Change-Id: I5ed00fe80e96e9d07d56eb7841a66ba98f328a91
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116318
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I715aa9499598c483ccf907f829c9ba3540edf216
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116120
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
See tdf#42949 for motivation
Change-Id: Ifc253bf800bb1468b5774663a93f4fb30bec81d3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113657
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
|
|
Change-Id: I60f4ded47f7d80b397647ea3344e83a5dfd1b11e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112183
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
|
Found with bin/find-unneeded-includes
Only removal proposals are dealt with here.
Change-Id: I4bb84c3f401aba8a3dede9cec3a7f2187a2ba02a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106473
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
|
|
Change-Id: I44be72b3a9b14823ec37a3c799cffb4fb4d6e1de
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104527
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I487b5dc148f5a3d0d45f198c00179002841242ce
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104213
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I3e451f0f252626abfb48222ec32a60fe346fe23b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103874
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
|
do more like
commit 121771e37f7e2de41cd5643475861062bf25627b
Date: Mon Sep 21 09:17:54 2020 +0200
Make some OUStringLiteral vars constexpr
cause coverity can live with that
Change-Id: I9efd7f848289c4865997a44c6780373068422227
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103147
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
|
This is a prerequisite for making conversion from OUStringLiteral to OUString
more efficient at least for C++20 (by replacing its internals with a constexpr-
generated sal_uString-compatible layout with a SAL_STRING_STATIC_FLAG refCount,
conditionally for C++20 for now).
For a configure-wise bare-bones build on Linux, size reported by `du -bs
instdir` grew by 118792 bytes from 1155636636 to 1155755428.
In most places just a u"..." string literal prefix had to be added. In some
places
char const a[] = "...";
variables have been changed to char16_t, and a few places required even further
changes to code (which prompted the addition of include/o3tl/string_view.hxx
helper function o3tl::equalsIgnoreAsciiCase and the additional
OUString::createFromAscii overload).
For all uses of macros expanding to string literals, the relevant uses have been
rewritten as
u"" MACRO
instead of changing the macro definitions. It should be possible to change at
least some of those macro definitions (and drop the u"" from their call sites)
in follow-up commits.
Change-Id: Iec4ef1a057d412d22443312d40c6a8a290dc6144
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/101483
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
look for expressions like
!(a && !b)
which can be expanded out
Change-Id: I72515a9638762b050f9a258c08da39ebfa2ef8e7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100579
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Add some API to O*StringLiteral, to make it easier
to use in some places that were using O*String
Change-Id: I1fb93bd47ac2065c9220d509aad3f4320326d99e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100270
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I20dc75b75e999ed82d221072d6ecaf2c02c834eb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99793
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I4badd0d2f6c9c0d2828152685aa14c2e1d358fea
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97623
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98230
Tested-by: Jenkins
|
|
Change-Id: I212a97007b5e69e6a2a6e10c76afe50c45ec283e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92229
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: Iedb1229b56b5e7f1af1779b830cf324bcc8735e4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87862
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
|
Found with bin/find-unneeded-includes
Only removal proposals are dealt with here.
Change-Id: I07178531d1c1edbfcd1ec1feed0dbe96ed2627a7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/85793
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
|
|
Change-Id: I160e4b15e3c636be0e23dd5bbb2da62dfa6a42ef
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/82169
Tested-by: Jenkins
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Tested-by: Michael Meeks <michael.meeks@collabora.com>
|
|
and can then remove some casting
Change-Id: Id821c32ca2cbcdb7f57ef7a5fa1960042e630ffc
Reviewed-on: https://gerrit.libreoffice.org/85022
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: Ib05b88b05c90b835107128f42c70170660788d00
Reviewed-on: https://gerrit.libreoffice.org/84851
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I7e1e641ff180035c7dcefdcfdd185eadbae32142
Reviewed-on: https://gerrit.libreoffice.org/84850
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
It started out as a wrapper around character literals, but has by now become a
wrapper around arbitrary single characters. Besides updating the documentation,
this change is a mechanical
for i in $(git grep -Fl OUStringLiteral1); do sed -i -e s/OUStringLiteral1/OUStringChar/g "$i"; done
Change-Id: I1b9eaa4b3fbc9025ce4a4bffea3db1c16188b76f
Reviewed-on: https://gerrit.libreoffice.org/80892
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Change-Id: I1fde665dcb77d29cad7f6a5c12e82c1822cff022
Reviewed-on: https://gerrit.libreoffice.org/80621
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|