fdo#38838 - Removal/Replacement of the String/UniString with OUString once and for all.

Eike Rathke erack at redhat.com
Tue Jan 15 10:26:08 PST 2013


Hi,

On Tuesday, 2013-01-15 14:16:42 +0100, Michael Stahl wrote:

> >   * What about the associated type xub_StrLen ?
> 
> good question... there is code that loops over the sal_Unicode UTF-16
> code units in the string (Note: those are not "characters").  since
> String has a maximum capacity of 2^16, and the xub_StrLen is a "short",
> and OUString of 2^31 the indexes in such loops most likely need to be
> adapted to sal_Int32.

Special care has to be taken of constant values STRING_NOTFOUND,
STRING_MATCH, STRING_LEN and STRING_MAXLEN that with a 16-bit xub_StrLen
do not match the then real world of 32-bit OUString offsets.

For example, a

    if (String.Search(...) == STRING_NOTFOUND)

replaced with

    if (OUString.indexOf(...) == STRING_NOTFOUND)

will not work.

Also loops and conditions that check STRING_MAXLEN will likely have to
be rewritten from unsigned 16-bit to signed 32-bit.

Additionally, an OUString's maximum capacity will be 2GB, so places that
chopped off String's data after an implicit STRING_MAXLEN now would
consume almost everything thrown at them which may have to be inspected.
A string length of several hundred MB usually is an error, unless proper
measurements have been taken.

  Eike

-- 
LibreOffice Calc developer. Number formatter stricken i18n transpositionizer.
New GnuPG key 0x65632D3A : 2265 D7F3 A7B0 95CC 3918  630B 6A6C D5B7 6563 2D3A
Old GnuPG key 0x293C05FD : 997A 4C60 CE41 0149 0DB3  9E96 2F1A D073 293C 05FD
Support the FSFE, care about Free Software! https://fsfe.org/support/?erack
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/libreoffice/attachments/20130115/2d3d7e58/attachment.pgp>


More information about the LibreOffice mailing list