Efficient UNO component linkage & GC ...

Michael Meeks michael.meeks at collabora.com
Mon Jan 6 12:01:02 PST 2014


On Mon, 2014-01-06 at 16:45 +0100, Stephan Bergmann wrote:
> > 	? :-) 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.

	Is there a practical example of this anywhere ? and/or can we not
default to doing the efficient thing and have the casual bloat version
as a fallback ? ;-)

> 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."

	Are the impl. names not exposed to the scripter / programmer ?

> 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."

	Sure; so - if we have that data around in a structure, it'd be great
not to duplicate it in the XML and also in the C++ :-) it'd be nice to
have the strings in one DSO only - if we even need them at all :-) [ are
they just a mapping detail ? ].

> 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).

	Sure - my concern is that before we push this across the code-base,
it'd be nice to rid ourselves of the factory functions and come up with
something that is efficient, minimal, as simple as possible, and -then-
push it over a thousand+ call-sites / XML entries etc. Rather than for
each small change having to manually re-touch all that lot.

	ATB,

		Michael.

-- 
 michael.meeks at collabora.com  <><, Pseudo Engineer, itinerant idiot



More information about the LibreOffice mailing list