[Libreoffice] Simpler logging using a string format function

Stephan Bergmann sbergman at redhat.com
Thu Dec 15 01:30:57 PST 2011

On 12/13/2011 10:21 PM, Michael Meeks wrote:
> On Mon, 2011-12-12 at 22:59 +0100, Stephan Bergmann wrote:
>> To be honest, I don't think the stated benefits (a different syntax) are
>> worth a switch.
> 	Well; the syntax that makes translation possible is a nice thing; but

Again, translation is a non-issue with conceivable uses of this in LO, 

> to me - having something efficient - that does not turn into some huge
> sequence of calls is what I'm interested in. We have quite enough bloat
> size-wise as it is, and infrastructure that makes it easy to create
> small, efficient code is much to be praised I feel.
> 	rtl::OUString x = "a" + 4 + "c";
> turns into:
>          x = new OUStringBuffer().append("a").append(4).append("c")
>                                .makeStringAndClear()
> 	Which looks (to me) like a lot of back-to-back calls (in place of one);
> and presumably some chunk of exception unwind table too. [ speaking of

But that's not related to the code in question.  Rather, at the call 
site, the printf-style approach amounts to a call to logfunction, while 
the <<-style approach amounts to one call to ostringstream ctor and one 
or more calls to the appropriate << operators.  Granted, the greater 
flexibility of the latter results in larger call-site code.

>> Sure, none of those are critical shortcomings, though.  (And its late
>> already, and maybe I'm just missing an obvious benefit completely.)
> 	Heh.
> 	Wrt. the panicing about now-or-never-again changes to these SAL_INFO
> style macros, that seems a bit over-done to me.

Late in the evening, not late for changes was what I meant.

> 	If there is any uncertainty about what we want to do with SAL_INFO and
> friends, I suggest we just add a -DSAL_INTERNAL parameter (or alike) to
> our build environment, and have some pieces of sal which are only for
> internal use. Then we can improve this at our leisure without panicing
> about sal's precious ABI :-)

No need for -DSAL_INTERNAL, I think.  The relevant symbols in sal.map 
are already in a PRIVATE_1.2 section, so clients that don't use 
sal/log.hxx would not be affected by incompatible changes.  And if we 
think so, we can mark the client-facing functionality in sal/log.hxx as 
"for LO internal use only, for now" (we already do so in some other places).


More information about the LibreOffice mailing list