QString -> QStringLiteral conversions might make applications crash on exit

Frank Reininghaus frank78ac at googlemail.com
Sun Feb 28 22:14:37 UTC 2016


Hi,

2016-02-26 13:25 GMT+01:00 Jan Kundrát:
> On Friday, 26 February 2016 01:37:57 CET, Frank Reininghaus wrote:
>>
>> This becomes a problem if the read-only data that the QString refers
>> to are not there any more, which can happen if the QString was stored
>> in a global static object from one library, and the QStringLiteral is
>> from another library, which might have been unloaded before the global
>> static object was destroyed.
>
>
> Are you 100% sure that this is not "just" due to icon loaders which are
> implemented as plugins [1]?

No, I'm not sure.

> Upstream says [2] that they do not want to support unloading of plugins
> which "leak" Qt data. There's a patch [3] which implements this for all
> plugins (including the icon loaders). Apparently, it's been so ever since Qt
> 5.0.

Thanks for sharing these links!

> For an example on how an application can workaround this thing, see my patch
> to Trojitá [4].

This is indeed an interesing approach to work around the problem,
thanks! Maybe a similar thing could be done in KIconLoader.

Cheers,
Frank


More information about the Kde-frameworks-devel mailing list