Which I removed in commit 58766f997d.
Turns out it does have some usefulness for extensions. So restore most
of it. The exception is the getDataInterpreter method, for which I have
added a placeholder, so that the restored class has the same vtable
layout as the original.
Change-Id: Ief9b48ef2c408580bc24b5a8a0e11131edb3b943
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142908
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
...so that its TOOLS_WARN_EXCEPTION can be used in
comphelper/source/misc/logging.cxx in a follow-up commit. (And while at it,
rename from diangose_ex.h to the more appropriate diagnose_ex.hxx. The
comphelper module is sufficiently low-level for this immediate use case, so use
that at least for now; o3tl might be even more suitable but doesn't have a
Library until now. Also, for the immediate use case it would have sufficed to
only break DbgGetCaughtException, exceptionToString, TOOLS_WARN_EXCEPTION,
TOOLS_WARN_EXCEPTION_IF, and TOOLS_INFO_EXCEPTION out of
include/tools/diagnose_ex.h into an additional new
include/comphelper/diagnose_ex.hxx, but its probably easier overall to just move
the complete include file as is.)
Change-Id: I9f3222d4ccf1a9ac29d7eb9ba1530d53e2affaee
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138451
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
See tdf#42949 for motivation
This time using the new --noexclude switch to recheck validity
of the excludelist; these were the obsolete exclusions
Change-Id: Ifdf79b30ebaf198082c2194611a2ed2b664e6f1f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133309
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
this reverts parts of the "use more concrete types in chart2,
LabeledDataSequence" commits, since writer uses it's own implementation
of the XLabeledDataSequence UNO interface
Change-Id: Icc2c5e9a38f789cddd9fbca63301397ce759fbff
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129587
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
This addressed a failure with VS2022 Version 17.1.0 Preview 2.0:
C:\PROGRA~1\MIB055~1\2022\Preview\VC\Tools\MSVC\1431~1.309\Include\xutility(1152): error C2794: 'reference': is not a member of any direct or in direct base class of 'std::iterator_traits<`anonymous-namespace'::lcl_DataSeriesContainerAppend>'
C:\PROGRA~1\MIB055~1\2022\Preview\VC\Tools\MSVC\1431~1.309\Include\xutility(3932): note: see reference to alias template instantiation 'std::_Iter_ref_t<`anonymous-namespace'::lcl_DataSeriesContainerAppend>' being compiled
C:\PROGRA~1\MIB055~1\2022\Preview\VC\Tools\MSVC\1431~1.309\Include\xutility(3992): note: see reference to variable template 'const bool _Iterator_is_volatile<`anonymous namespace'::lcl_DataSeriesContainerAppend>' being compiled
C:\PROGRA~1\MIB055~1\2022\Preview\VC\Tools\MSVC\1431~1.309\Include\xutility(4048): note: see reference to function template instantiation '_OutIt std::_Copy_unchecked<com::sun::star::uno::Reference<com::sun::star::chart2::XDataSeriesContainer>*,_OutIt>(_InIt,_InIt,_OutIt)' being compiled
with
[
_OutIt=`anonymous-namespace'::lcl_DataSeriesContainerAppend,
_InIt=com::sun::star::uno::Reference<com::sun::star::chart2::XDataSeriesContainer> *
]
C:/lo/src/core/chart2/source/controller/dialogs/DialogModel.cxx(504): note: see reference to function template instantiation '_OutIt std::copy<std::_Vector_iterator<std::_Vector_val<std::_Simple_types<_Ty>>>,`anonymous-namespace'::lcl_DataSeriesContainerAppend>(_InIt,_InIt,_OutIt)' being compiled
with
[
_OutIt=`anonymous-namespace'::lcl_DataSeriesContainerAppend,
_Ty=com::sun::star::uno::Reference<com::sun::star::chart2::XDataSeriesContainer>,
_InIt=std::_Vector_iterator<std::_Vector_val<std::_Simple_types<com::sun::star::uno::Reference<com::sun::star::chart2::XDataSeriesContainer>>>>
]
C:\PROGRA~1\MIB055~1\2022\Preview\VC\Tools\MSVC\1431~1.309\Include\xutility(3932): error C2938: 'std::_Iter_ref_t' : Failed to specialize alias template
C:\PROGRA~1\MIB055~1\2022\Preview\VC\Tools\MSVC\1431~1.309\Include\xutility(3932): error C2062: type 'unknown-type' unexpected
C:\PROGRA~1\MIB055~1\2022\Preview\VC\Tools\MSVC\1431~1.309\Include\xutility(3992): error C3376: 'std::_Iterator_is_volatile': only static data member templates are allowed
C:\PROGRA~1\MIB055~1\2022\Preview\VC\Tools\MSVC\1431~1.309\Include\xutility(4026): error C2976: 'std::_Iter_copy_cat': too few template arguments
C:\PROGRA~1\MIB055~1\2022\Preview\VC\Tools\MSVC\1431~1.309\Include\xutility(3994): note: see declaration of 'std::_Iter_copy_cat'
C:\PROGRA~1\MIB055~1\2022\Preview\VC\Tools\MSVC\1431~1.309\Include\xutility(1152): error C2794: 'reference': is not a member of any direct or in direct base class of 'std::iterator_traits<`anonymous-namespace'::lcl_RolesWithRangeAppend>'
C:\PROGRA~1\MIB055~1\2022\Preview\VC\Tools\MSVC\1431~1.309\Include\xutility(3932): note: see reference to alias template instantiation 'std::_Iter_ref_t<`anonymous-namespace'::lcl_RolesWithRangeAppend>' being compiled
C:\PROGRA~1\MIB055~1\2022\Preview\VC\Tools\MSVC\1431~1.309\Include\xutility(3992): note: see reference to variable template 'const bool _Iterator_is_volatile<`anonymous namespace'::lcl_RolesWithRangeAppend>' being compiled
C:\PROGRA~1\MIB055~1\2022\Preview\VC\Tools\MSVC\1431~1.309\Include\xutility(4048): note: see reference to function template instantiation '_OutIt std::_Copy_unchecked<_InIt,_OutIt>(_InIt,_InIt,_OutIt)' being compiled
with
[
_OutIt=`anonymous-namespace'::lcl_RolesWithRangeAppend,
_InIt=const com::sun::star::uno::Reference<com::sun::star::chart2::data::XLabeledDataSequence> *
]
C:/lo/src/core/chart2/source/controller/dialogs/DialogModel.cxx(563): note: see reference to function template instantiation '_OutIt std::copy<const E*,`anonymous-namespace'::lcl_RolesWithRangeAppend>(_InIt,_InIt,_OutIt)' being compiled
with
[
_OutIt=`anonymous-namespace'::lcl_RolesWithRangeAppend,
E=com::sun::star::uno::Reference<com::sun::star::chart2::data::XLabeledDataSequence>,
_InIt=const com::sun::star::uno::Reference<com::sun::star::chart2::data::XLabeledDataSequence> *
]
make[1]: *** [C:/lo/src/core/solenv/gbuild/LinkTarget.mk:332: C:/lo/src/build/workdir/CxxObject/chart2/source/controller/dialogs/DialogModel.o] Error 2
Change-Id: Ic93dc7922cd48870ef62bfd682dd5cbdc827a255
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128036
Tested-by: Mike Kaganski <mike.kaganski@collabora.com>
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
The scenarios are:
1. Calling sequence's begin() and end() in pairs to pass to algorithms
(both calls use getArray(), which does the COW checks)
2. In addition to #1, calling end() again when checking result of find
algorithms, and/or begin() to calculate result's distance
3. Using non-const sequences in range-based for loops, which internally
do #1
4. Assigning sequence to another sequence variable, and then modifying
one of them
In many cases, the sequences could be made const, or treated as const
for the purposes of the algorithms (using std::as_const, std::cbegin,
and std::cend). Where algorithm modifies the sequence, it was changed
to only call getArray() once. For that, css::uno::toNonConstRange was
introduced, which returns a struct (sublclass of std::pair) with two
iterators [begin, end], that are calculated using one call to begin()
and one call to getLength().
To handle #4, css::uno::Sequence::swap was introduced, that swaps the
internal pointer to uno_Sequence. So when a local Sequence variable
should be assigned to another variable, and the latter will be modified
further, it's now possible to use swap instead, so the two sequences
are kept independent.
The modified places were found by temporarily removing non-const end().
Change-Id: I8fe2787f200eecb70744e8b77fbdf7a49653f628
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123542
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
A new function was defined, XdataInterpreter::getChartTypeSpecificData.
Being 100% chart-type-agnostic when retrieving chart data is impossible;
candlestick charts can have different numbers of sequences per series,
and this information is not present in any other chart type.
Change-Id: I0f54b09202c42667331b083d54d90e4ceee81083
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113075
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
do more like
commit 121771e37f
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>
...where the get member function is defined on a std::__shared_ptr base class,
so loplugin:simplifypointertobool used to miss those until now. (While e.g.
using libc++ on macOS found those cases.)
366d08f2f6 "new loplugin:simplifypointertobool"
was mistaken in breaking isSmartPointerType(const clang::Type* t) out of
isSmartPointerType(const Expr* e); c874294ad9 "Fix
detection of std::unique_ptr/shared_ptr in loplugin:redundantpointerops" had
introduced that indivisible two-step algorithm on purpose.
The amount of additional hits (on Linux) apparently asked for turning
loplugin:simplifypointertobool into a rewriting plugin. Which in turn showed
that the naive adivce to just "drop the get()" is not sufficient in places that
are not contextually converted to bool, as those places need to be wrapped in a
bool(...) functional cast now. If the expression was already wrapped in
parentheses, those could be reused as part of the functional cast, but
implementing that showed that such cases are not yet found at all by the
existing loplugin:simplifypointertobool. Lets leave that TODO for another
commit.
Besides the changes to compilerplugins/ itself, this change has been generated
fully automatically with the rewriting plugin on Linux.
Change-Id: I83107d6f634fc9ac232986f49044d7017df83e2a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94888
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Tested-by: Jenkins
Found with bin/find-unneeded-includes
Only removal proposals are dealt with here.
Cleaned directories are chartapiwrapper and dialogs
Also a few other hxx in other inc dirs that came up
during the process
Change-Id: Ibf9c33aeee91a92216e8ab512f87acc482e13ae5
Reviewed-on: https://gerrit.libreoffice.org/65566
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
simplify the initialisaion and make them thread-safe i.e. initialise
them using the runtime's local static locking.
Thanks to mike kaganski for pointing out the nice lambda approach that
makes this feasible.
Change-Id: I76391189a6d0a3d7eed2d0d88d28dfa6541eaff7
Reviewed-on: https://gerrit.libreoffice.org/63645
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Found with bin/find-unneeded-includes
Only removal proposals are dealt with here.
Change-Id: Ie6fb9f03f36d71e7b07ef70238d969db65121c8f
Reviewed-on: https://gerrit.libreoffice.org/61506
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
And it's immediately obvious why, if you look at the elegant and concise
replacement code that doesn't trigger deprecation warnings.
Change-Id: Ie4b3ca83951a89f7ac4d172086c23c7457087ba3
Reviewed-on: https://gerrit.libreoffice.org/48223
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Stahl <mstahl@redhat.com>