Hi

As is documented in our development guide (
https://wiki.openoffice.org/wiki/Documentation/DevGuide/ProUNO/Component_Context),
OpenOffice has 2 APIs for factories for creating components, the older
service manager (XMultiServiceFactory) and the newer component context
(XComponentContext and its XMultiComponentFactory).

Most OpenOffice code (possibly as much as 73%) still uses the older service
manager API, which is undesirable as it breaks context propagation.

I tried to convert some components to use the component context API instead
of service manager. It went well. The component context related helper
functions like ::cppu::component_getFactoryHelper() are simpler and easier
to use than the long manual implementation of component_getFactory()
functions. I also noticed another unexpected benefit: the new way made the
components slightly smaller :-)

main/fileacc: libfileacc.so 101576 -> 100384 (1192 bytes / 1.17% smaller).
main/linguistic: liblng.so 776088 -> 774792 (1296 bytes / 0.17% smaller).
main/unotools: libutl.so 1741992 -> 1741544 (448 bytes / 0.026% smaller).

I've pushed my changes into trunk in these commits:
b823e66d3f46b17ae64960345c492805b7c32775
cc5439b6c91921c2f20d49d36a9f2cf6bb387039
b823e66d3f46b17ae64960345c492805b7c32775

I plan to continue this over time. Others are welcome to join in.

Regards
Damjan

Reply via email to