Hi Michael, On Wednesday, 2012-08-01 22:02:50 +0200, Michael Stahl wrote:
On 01/08/12 19:05, Eike Rathke wrote:On Wednesday, 2012-08-01 18:17:12 +0200, Stephan Bergmann wrote:make rtl::OUString::copy(beginIndex, count) clip to [0..length)? yeah, why not (then again, -1's sentinel nature, cf. indexOf, might mean that silent clipping of beginIndex=-1 to beginIndex=0 is unfortunate)We may step into more of these traps in transitions from String to OUString, so clipping IMHO is good. I think beginIndex<0 or count<=0 should always return an empty string and output a SAL_WARN, maybe also SAL_WARN if clipping occurred as that may indicate a logic error.no, it should assert(). passing in invalid indexes is clearly a bug that must be fixed.
Well, yes, but the assert() hits only with debug, in non-debug build the copy() happily (probably depending on memory layout) may copy excess characters on Linux while it may crash on Windows or Mac. So for many developers it may still go unnoticed. My suggestion then: keep the assert() for debug/dbgutil heroes but clip thereafter for when the assert() is not active. Eike -- LibreOffice Calc developer. Number formatter stricken i18n transpositionizer. GnuPG key 0x293C05FD : 997A 4C60 CE41 0149 0DB3 9E96 2F1A D073 293C 05FD
Attachment:
pgpZR7dghbRba.pgp
Description: PGP signature