Date: prev next · Thread: first prev next last
2012 Archives by date, by thread · List index


On Friday 13 of July 2012, Christophe JAILLET wrote:
Hi,

according to my understanding,

OUString::compareToAscii(RTL_CONSTASCII_STRINGPARAM("A string")) gives

 compareAsciiL - the L means it gets the string length from the macro

exactly the same result as
OUString::compareToAscii("A string")

However, the first one:
     - is harder to read
     - uses the deprecated RTL_CONSTASCII_STRINGPARAM macro
     - is a bit slower

 It is actually a bit faster (the macro computes string length at 
compile-time), which is presumably how this whole RTL_CONSTASCII_STRINGPARAM 
madness came to be.

If you agree with that, I will provide a patch to clean it.

 String literals can now mostly be used just like OUString, because many 
string functions now have specialized overloads for them. IIRC compare() does 
not, for a reason I don't quite recall at the moment, but it's probably 
better to leave those as they are for the time being.

Moreover, and as a 2nd step, I plan to propose a patch that turns:
     s.compareToAscii("A string") == 0
into
     s.equalsAscii("A string")

 s.equals( "A string" )

 or even simpler

 s == "A string"


and

     ! s.compareToAscii("A string")
into
     s.equalsAscii("A string")

I think that equalsAscii is better because:
     - shorter
     - more meaningful
     - doing some ! on sal_Int32 is not as clean as using sal_Bool directly

 Yes, except again, just == will do.

Do you think that such a clean-up is interesting ?

 Yes, if it's interesting to you to do it :).

-- 
 Lubos Lunak
 l.lunak@suse.cz

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.