[Libreoffice] [PATCH] Add support for bool for the operator << and >> of SvStream

Caolán McNamara caolanm at redhat.com
Tue Oct 5 03:56:50 PDT 2010


On Tue, 2010-10-05 at 11:33 +0100, Michael Meeks wrote:
> Hi there,
> 
> 	Fair enough; so an explicit cast in the code calling the operator:
> 
> 	rStrm << static_cast<sal_uInt8>(aBool) << ...;
> 
> 	sort of thing ?

Do we have a concrete example of where we have a BOOL getting streamed
out at the moment ? My first instinct would be to change whatever aBool
element is currently a BOOL and getting streamed to disk to a sal_uInt8
in its declaration. e.g.

struct StreamMe
{
    sal_uInt16 foo;
-    BOOL bar;
+    sal_uInt8 bar;
};

rather than getting into cast foo.

> > I see we also have a << >> SvStream operators for "long" which is
> > another disaster seeing as a long is either 32bits of 64bits in size
> > depending on platform.
> 
> 	Weelll ... the operator in fact only streams 4 bytes regardless of
> architecture ...

Well, has the bright side that at least anything streaming longs isn't
creating dumps which can't be read on a different long-sized arch.

> 	I guess; OTOH - do we really want to get into some monster LONG ->
> sal_Int32 replacement scheme just now ? :-) I'd rather get hackers
> re-focused on the higher-win tasks further up the stack really.

Sure, its not critical, but 32bit vs 64bit long/sal_Int32 mixups cause
real bugs. e.g.
http://cgit.freedesktop.org/libreoffice/components/commit/?id=18e69aa675aed764226eb496a34a8c0313e9c9d0
which is a different area, but illustrates the kind of cockup which
might be hiding from us at the moment.

C.



More information about the LibreOffice mailing list