On 05/05/2014 09:07 AM, sberg wrote:
On 04/25/2014 11:06 PM, julien2412 [via Document Foundation Mail
Archive] wrote:
> I've begun to replace some parts and had this when I've changed this:
> else if ( pType == ::getCppuType((const sal_uInt16*)0) )
> into this:
> else if ( pType == cppu::UnoType<const sal_uInt16>::get() )
That's the problem with getCppuType, that sal_uInt16 (representing UNO
UNSIGNED SHORT) and sal_Unicode (representing UNO CHAR) can be typedefs
for one and the same type, so getCppuType arbitrarily has to decide for
one of those.
With cppu::UnoType, instead use cppu::UnoUnsignedShortType and
cppu::UnoCharType as template arguments, respectively.
And for completeness: Use cppu::UnoSequenceType<> instead of
css::uno::Sequence<> when the (recursive) element type is one of those
special UnoUnsignedShortType/UnoCharType. (Cf.
<http://cgit.freedesktop.org/libreoffice/core/commit/?id=127a5f5e12d33203f871ee810e4b7ef557b7764b>
"Sequence<UnoUnsignedShortType> -> UnoSequenceType<UnoUnsignedShortType>.")
(And, finally, css::uno::Reference<> is redundant there, so
cppu::UnoType<XComponentContext>::get()
is shorthand for
cppu::UnoType<Reference<XComponentContext>>::get()
and probably preferable.)
Stephan
_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice