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

Reply via email to