On sábado, 11 de agosto de 2012 20.51.30, Konstantin Tokarev wrote:
> Hi all,
>
> I'd like to use SCSU encoding from ICU library in my Qt application. Here is
> a code of my decoding function:
>
>     QString result;
>     result.resize(maxSize); // maxSize is guaranteed to be >= size
>     const int size = ucnv_toUChars(m_converter, const_cast<ushort
> *>(result.utf16()), maxSize, a, inSize, &status);

utf16() is wrong.

Instead, use:
        reinterpret_cast<ushort *>(result.data())

> result.resize(size);
>     return result;
>
> (ucnv_toUChars fills array in second argument with UTF16 string and returns
> its size)
>
> Is it safe to use return value of QString::utf16() this way in this context
> (QString is always created on stack locally)?

No.

--
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
      PGP/GPG: 0x6EF45358; fingerprint:
      E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to