On 12/23/2013 08:28 PM, Michael Meeks wrote:
On Mon, 2013-12-23 at 18:44 +0100, Matúš Kukan wrote:
* implementations of non-single-instance services can be rewritten using
the new .component XML <implementation constructor="..." feature, cf.
<http://cgit.freedesktop.org/libreoffice/core/commit/?id=ae3a0c8da50b36db395984637f5ad74d3b4887bc>

        I'm concerned that we already have way too many, far too verbose XML
files, with over-lengthy attributes (some with un-necessary and
over-complicated namespacing to boot ;-). Parsing that lot takes a very
considerable chunk of startup time, and storing redundant foo in memory
seems a bit un-necessary :-)

        What does this:

   <implementation name="com.sun.star.comp.graphic.GraphicRendererVCL"
+  
constructor="com_sun_star_comp_graphic_GraphicRendererVCL_get_implementation">
      <service name="com.sun.star.graphic.GraphicRendererVCL"/>
   </implementation>

        win us over:

   <implementation name="com.sun.star.comp.graphic.GraphicRendererVCL" 
direct="1">
      <service name="com.sun.star.graphic.GraphicRendererVCL"/>
   </implementation>

        ? :-) Certainly the latter can be stored as an extra boolean.

There is a mismatch between the grammar for UNO implementation names and C function identifiers usable for these constructor functions, and the constructor argument in its current form caters for that.

Note 1: Of course, "given that we control the [relevant] impl names, we [could] simply mandate that they are legal C function names to begin with."

Note 2: "In addition to having [the components data] stored as XML files that are parsed at start-up in cppuhelper::ServiceManager::init, one could optionally have them pre-compiled into some data structure that is accessible from cppuhelper/source/servicemanager.cxx."

Note 3: A key insight is that "we can easily extend the components XML schema, even removing features again in a later LO version." First make it work, then make it fast (if necessary).

Stephan
_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to