svl::SharedString::getDataIgnoreCase() returns unexpected result

Kohei Yoshida libreoffice at kohei.us
Tue Jun 14 02:37:34 UTC 2016


On Mon, 2016-06-13 at 10:31 +0200, Eike Rathke wrote:
> Hi Winfried,
> 
> On Monday, 2016-06-13 10:18:02 +0200, Winfried Donkers wrote:
> 
> > (aRefStr and aStr being svl::SharedString)
> > Apparently this doesn't work, getDataIgnoreCase() does not return a string, but 0x0.
> > gdb tells me that aRefStr.mpData is filled correctly, but aRefStr.mpDataIgnoreCase is 0x0.
> > aStr is filled correctly.
> 
> Likely aRefStr isn't interned, but only constructed from an OUString.

Yup, and what I used to do in a case like this was to insert a printf
statement in that constructor of SharedString (the one that only takes
OUString) to see if anybody is calling it.  If somebody is calling it,
set a break point there and you'll find the culprit.

One likely scenario is where someone is passing a OUString value to a
function that expects a SharedString.

Kohei




More information about the LibreOffice mailing list