removeRdbFiles suffered from a confusion that ImplementationInfo.uri denotes the
corresponding component (.so, .jar, etc.), but not the .rdb file. So removing
an .rdb file silently failed to remove the corresponding implementations, so re-
installing a similar enough .rdb (as typically happens during extension update)
would fail due to duplicate implementation names.
Change-Id: I25d4ff72656c99a3af509eef09e89c18cfd0aabe
Erasing from data_ member maps can destroy contained Implementations, which in
turn releases the UNO objects referenced from there, which in turn can cause
XComponents to dispose, which in turn can call arbitrary code, so must not be
done with rMutex locked. Witness the backtrace at
<https://bugs.freedesktop.org/attachment.cgi?id=65142> linked from fdo#52639
(where this fix appears otherwise unrelated to that issue's main topic).
Change-Id: If55a3841b761ec1d9a0ef61fe54784426c4ee442
...in loadImplementation (instead of using the context the ServiceManager itself
was created with). Otherwise, the handcrafted context containing a fake
theJavaVirtualMachine singleton in install_vm_singleton
(javaunohelper/source/vm.cxx) would not be honored, so that if a Java process
bootstraps native (binary) UNO and from there tries to obtain that singleton, it
would erroneously try to instantiate another JVM instead of using the existing
one. This was a regression introduced with the new ServiceManager and could be
witnessed by test-javanative in ure/source/uretest/Makefile failing.
Change-Id: I58cfbc8cdaea7ee4ab80fac728ea3e85676d69e1
http://lists.freedesktop.org/archives/libreoffice/2012-April/029940.html
The RTL_USING #define (set by gbuild for anything that's not public
API) allows to use such classes simply by their name, without having
to use the namespace or do explicit using rtl::OUString (which half
of the sources do anyway).
Change-Id: I7edaf12cd278489cdc1d5ff782f0a86361c13c0a
...as some client code catches just the former and thus fails now. (This was a
regression introduced with the recent cppuhelper/source/defaultbootstrap.cxx.)
Change-Id: I8306797f8331d894ab4e7695478e3824e9f79197
...the mangled names of the corresponding symbols change with MSVC if you change
a member from public to protected. This had been changed with
6e67c03dc0 "Enable -Wnon-virtual-dtor for GCC 4.6"
but should only be necessary for GCC, not for MSVC, so can simply be reverted
under _MSC_VER.
Change-Id: Id22aadaff3d7f30ed824f39fe22eab7ca39bd408
This reverts commit b162aec625, which increased
code complexity for no benefit (the dubious scenario it was introduced for
concerned duplicate service rdbs rather than type rdbs, anyway).
...see comment in ServiceManager::createContentEnumeration for a rationale.
Splitting ImplementationInfo out of Implementation has become necessary to avoid
circular references.
Change-Id: I29aef81ce78b9ab71e18663f8c7e6ca913c6a650
Unfortunately this --enable-dbg-util only problem (caused by
_GLIBCXX_DEUBG) resurfaced, perhaps because of new std::string based
logging in sal; adapt all map files to export the unique symbol.
this removes dmake completely out of the build for migrated modules
build.pl now assumes modules to be gbuild, unless there is a
prj/dmake file
Change-Id: I674a036b182ee13c5ec093e83cb3d38133112d3b
...that no longer uses XSimpleRegistry structures for the service data and thus
is potentially more performant.
* Registry-based functions from cppuhelper/bootstrap are deprecated now, client
code should always use defaultBootstrap_InitialComponentContext.
* References to the obsolete UNO_WRITERDB have been removed.
* Some of the functions in cppuhelper/source that are used from multiple .cxx
but had not been properly placed into .hxx have been cleaned up.
* css.lang.ServiceManager XSet insert/remove now support special
sequence<NamedValue> to improve live deployment/removal of XML-based extension
components data.
* 09524d410b "stoc: accelerate opening of multiple
XML .rdb files in a directory" and its follow-up
cb5c881a7f "avoid using the new rdb reading
logic for empty/non-existent directories" have been obsoleted by this change
and have been reverted again.