Find places where we are returning a pointer to something, where we can
be returning a reference.
e.g.
class A {
struct X x;
public X* getX() { return &x; }
}
which can be:
public X& getX() { return x; }
Change-Id: I796fd23fd36a18aedf6e36bc28f8fab4f518c6c7
after commit
c5d47c327a57df55
"add default value for Context param in uno::Exception constructors"
Change-Id: Ib429b58c559ecd48764a8df2f49d5470057c2c63
and all it's subtypes, which is almost never used, so this allows us to
simplify lots of call sites.
Change-Id: I0b05793ea2bdd1027679f63252d42ce4af89433b
Detect arguments larger than 64 chars passed by value.
Change-Id: I9b0ea9ccb99d115984a26eab67c9cf6afd5f6cae
Signed-off-by: Stephan Bergmann <sbergman@redhat.com>
It appears that the C++ standard allows overriding destructors to be marked
"override," but at least some MSVC versions complain about it, so at least make
sure such destructors are explicitly marked "virtual."
Change-Id: I0e1cafa7584fd16ebdce61f569eae2373a71b0a1
...mostly done with a rewriting Clang plugin, with just some manual tweaking
necessary to fix poor macro usage.
Change-Id: I71fa20213e86be10de332ece0aa273239df7b61a
There is really no need to see tons of
component context fails to supply service <something long> of type <something else long>:
and
component context fails to supply service <something long> of type <something else long>
in the binary ;-) - let's split the strings to parts that the linker can
share easily.
Change-Id: I07f149a587c05985045028c3b6530c6efd081ff5
Missing in c2c530da69152ff9192b9726aa95961803ce9b29 "Introduce static
inline cppu::acquire(), and make use of that."
Change-Id: I4a856eeaff1fce3f429c62c1897fe3898371d1ec
Most of the constructors are supposed to be only a call of
new TheInstance(arguments)
or an equivalent; so let's just change the constructor caller accordingly, to
accept unacquired new instance.
If there are exceptions that need to do more heavy lifting, they do not have
to use the constructor feature, or there can be a wrapper for the real
implementation, doing the additional work in their (C++) constructor.
Change-Id: I035c378778aeda60d15af4e56ca3761c586d5ded
...originally the past-the-end checks in destination where always true, and thus
happend to work as intended for empty destionation, but
614e04019a672cdd61b86699d99250d80f169f95 broke that, so calling cppumaker w/o
-O was broken now.
Change-Id: I8d41dfe8d4c12e4a73a9782d4d5e7c9fa4d9df81
In Japanese localized Windows, cppumaker requires sal_textenclo.dll
but that rule isn't written in .mk. It causes build failure.
Change-Id: Icab74493a4a3b445144bb9d969b79636dbd17162
Reviewed-on: https://gerrit.libreoffice.org/7134
Reviewed-by: Kohei Yoshida <libreoffice@kohei.us>
Tested-by: Kohei Yoshida <libreoffice@kohei.us>
This is both an optimisation and a cleanup.
This converts code like
aStr.indexOf("XX") == 0
to
aStr.startsWith("XX")
and converts code like
aStr.lastIndexOf("XXX") == aStr.getLength() - 3
to
aStr.endsWith("XXX")
Note that in general
aStr.lastIndexOf("X") == aStr.getLength() - 1
converts to
aStr.isEmpty() || aStr.endsWith("X")
so I used the surrounding context to determine if aStr could be empty
when modifying the code.
Change-Id: I22cb8ca7c2a4d0288b001f72adb27fd63af87669
...so that exceptions like std::bad_alloc need not be treated in C++
implementations of UNO interfaces to not cause std::unexpected. Of course, this
requires implementations to be adapted and actually mention std::exception in
their exception specifications.
Change-Id: Ie7f91e7ca47d8a81e3d0ba817e65d83c7823af75
...the list has been fixed now by copying its elements into an ENTRIES file and
running "unoidl-write udkapi/ @ENTITIES TEMP && unoidl-read TEMP >/dev/null" and
adding any reported unknown entities until it succeeds.
However, the updated list lead to deadlock when css.reflection.ParamInfo UnoType
resolves css.reflection.XIdlClass UnoType resolves css.reflection.XIdlMethod
UnoType resolves css.reflection.ParamInfo UnoType, so broke the circle by no
longer resolving the interface methods' return and parameter types in
InterfaceType::dumpMethodsCppuDecl (which is why those type infos are only
generated on demand anyway; looks like this had been a careless thinko in the
generation of comprehensive type info that had remained unnoticed all the time).
Change-Id: I50ef2fde16242298e055c6fa5971e70fad1a2b68