The service manager now keeps track of instances of singleton implementations
(i.e., implementations whose XML description lists at least one
<singleton ...>). These instances will be disposed either when the service
manager is disposed, or, for instances that have been instantiated into the
component context's /singleton/* map, when the component context is disposed.
This change allows to use constructor functions for such singleton
implementations, too.
Change-Id: I220c9ddc9824e4d7f7556daefb599e2ec36b0e6c
Passing an, as such useful, verbose error message to the
CannotActivateFactoryException constructor is fairly pointless if that
exception ends up being unexpected and causes program
termination. Which of course is exactly the case when one would be
very interested in seeing any message associated with the exception.
Change-Id: I1cd987669e39e47d5f072690dc5013e4a42fd50a
While strictly speaking an incompatible change, it is extremely unlikely that
external code uses cppu::Enterable at all; this should always have been a
private URE implementation detail.
Change-Id: I2c3fe754fe6268b18ca03532229f3403736f6f6e
...to directly call constructor functions of ComponentContext-based C++
implementations of (non-single-instance) UNO services. The case where these
calls would need to be bridged across different environments (e.g., from gcc3
to gcc3:affine) is not yet implemented.
bootstrap.component and expwrap.component are adapted accordingly as a proof-of-
concept (which had previously been adapted to use the prefix="direct" feature,
which may become unnecessary again in the end, depending on how to handle
single-instance services/singletons). More to follow.
Change-Id: I18682d75bcd29d3d427e31331b4ce8161dbb846d
It's not terribly nice, but, hopefully, better.
The hope is that one day, lo_get_library_map will be no more.
In lo_get_implementation_map we can specify more precisely what to link
into the binary.
Change-Id: I99a1854fbae05be2f70302cc56bea88e522ec129
Demonstrating on expwrap library.
There is hope, this will bring code size savings for mobile
platforms, where we don't need every implementation.
Change-Id: I3519fb6148fd7a47ed9df092c73779ea6add552f
...for internal loader="com.sun.star.loader.SharedLibrary" components, instead
of exported component_getImplementationEnvironmen (or implicit
CPPU_CURRENT_LANGUAGE_BINDING_NAME). Adapted a few .component files as proof-
of-concept, more to follow.
Change-Id: I82332e0a48e6fc1da245990bb72265fe6e58447e
...it was never meant to be called by client code anyway and is no longer needed
to be exposed since the global service manager implementation moved to
cppuhelper.
Change-Id: If2d0510b2364084d36edeb156a3459d9b8aeb983
Convert code like
aStr.compareToAscii("XXX") == 0
to
aStr.equalsAscii("XXX")
which is both easier to read and faster.
Change-Id: I448abf58f2fa0e7715dba53f8e8825ca0587c83f
Convert code like:
0 == aStr.compareToAscii("XXX")
to
aStr.equalsAscii("XXX")
which is both clearer and faster.
Change-Id: I2e906d7d38494db38eb292702fadb781b1251e07
... it is an abbreviation of "Solar Version".
Since nobody can remember that:
remove OUTDIR OUTDIR_FOR_BUILD SOLARVER SOLARVERSION solarpath
and any mention thereof.
Change-Id: Idb3031c4f25a76ac05b22ec67e3ca3e1e8e512ad
Reviewed-on: https://gerrit.libreoffice.org/6515
Tested-by: LibreOffice gerrit bot <gerrit@libreoffice.org>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
Convert places that call
aStr[aStr.getLength()-1] == 'x'
to use the shorter form
aStr.endsWith("x")
Change-Id: I1b3a19c0e89b8989cdbeed440f95fc76f9a4b6b6
Rename functions so that functions called by the UI layer for actions
to happen in the LO layer and functions called by the LO layer for
things to happen in the UI layer use different prefixes. Move
declarations to the generic <touch/touch.h> and avoid iOS-specific
types in the API.
Change-Id: Ieb8979065e02a87c4a415c934163265f2790d011
It happens when an extension has just been live-deployed into the running
soffice process and then trying to instantiate out-of-process in an additional
uno process one of that extension's shared library components and that component
---erroneously---uses the "prefix" feature. (Which can be reproduced with the
mysql-connector-ooo.oxt extension, --enable-ext-mariadb-connector: "rm -rf
instdir/*/share/extensions/mysql-connector-ooo", "instdir/*/program/soffice
workdir/*/Extension/mysql-connector.oxt", install the per-user, then "File - New
- Database - Connect to an existing database: MySQL - Next >> - Connect directly
- Next >> - Database name: foo - Server / Port - Server: bar - Next >> - Test
Connection", crash.)
Change-Id: Ibab2ad31199eec5dc26ffa337a5e3e7490f782d7
rLibName -> uri must be an (absolute file) URI, rPath must be empty, and xKey
must be null in loadSharedLibComponentFactory. While incompatible in theory,
these functions should only be called internally, anyway.
Change-Id: Iab144b199e4e7db62358283efec6877a5da19bab
...that has neither been intended for external use anyway, nor has it ever been
used internally since its dead-on-arrival inception in
b16ab7a751c04049b4171df412f1ef0f4f9b02f2 "Add invokeStaticComponentFactory() for
statically linked components: Will be used for iOS at least." Sigh.
Change-Id: I17795b2a1945809688deba0a5492415fbe877400
...introduced in 2000 with 38974aeef6dfaa1c625cf5498ec553489dd08c87 "added
library loading limitation by using env variable CPLD_ACCESSPATH=path1;path2;
etc." and 9be3c618e0b1d2b2635bd7b134693ed5ff3021bc "#80090# restrict jar file
access to java system property com.sun.star.comp.loader.CPLD_ACCESSPATH" but
already in 2004 considered "a hack [that] seems to be unused nowadays" in
1d3164df959b31ba9f50ddc108569f3adec32ff7 "CWS sb20: #i29119# Replaced
sandbox.jar-based class loader with an own one."
Change-Id: I637afd5daeb4ca097edd17f834c81af892dcfc6a