On 12/19/2013 10:51 AM, Stephan Bergmann wrote:
* next step is to let certain occurrences of UNO service constructor
(and singleton getter) calls in C++ code call corresponding constructor
functions directly (instead of going via service manager's
createInstanceWith[ArgumentsAnd]Context); conditions under which this
simplification can be done:

** caller and implementation use the same environment (e.g., both gcc3;
this is not the case e.g. for
connectivity/source/drivers/jdbc/jdbc.component's
environment="@CPPU_ENV@:affine")

** and caller knows that the constructor function is visible (i.e., the
library/executable supplying it is loaded)

** note that there are always situations where UNO services are not
called via constructor, though; e.g., the constructor-less
css.uri.UriSchemeParser_* services are always created via dynamically
computed name

* idea is to set aside for every UNO service/singleton S two macros
LO_URE_CTOR_ENV_<S'> and LO_URE_CTOR_FUN_<S'>, and a macro
LO_URE_CURRENT_ENV, and modify cppumaker to generate constructor code as
[...]

i.e., <http://cgit.freedesktop.org/libreoffice/core/commit/?id=15abebbde560e17413f17b16b8b2e9c1f31f01a5> "WIP: Direct service ctor calls at least on Android/iOS"

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

Reply via email to