[Interest] App crashing because of ImageProvider when exiting

Nuno Santos nunosantos at imaginando.pt
Wed Jul 25 13:18:57 CEST 2018


Martin,

Thanks for your reply. 

But I still can’t understand how to fix the crash related with the provider destruction. 

It seems that someone is trying to delete an already deleted pointer and therefore the crash.

Regards,

Nuno

> On 25 Jul 2018, at 12:15, Martin Leutelt <martin.leutelt at basyskom.com> wrote:
> 
> Hi Jean,
> 
> From: Nuno Santos <nunosantos at imaginando.pt <mailto:nunosantos at imaginando.pt>> 
> To: Jean-Michaël Celerier <jeanmichael.celerier at gmail.com <mailto:jeanmichael.celerier at gmail.com>> 
> Cc: Qt Project MailingList <interest at qt-project.org <mailto:interest at qt-project.org>> 
> Sent: 7/25/2018 12:59 PM 
> Subject: Re: [Interest] App crashing because of ImageProvider when exiting 
> 
> Jean,
> 
> This is the main context. It will not get out until app.exec() terminates.
> 
> That’s why I’m connecting to aboutToQuit signal in order to remove the provider from the Qml engine. 
> 
> Since the engine takes ownership you don't need to remove the image provider in your case, since you're not adding/removing providers dynamically during runtime.
> 
> 
> I had the provider instantiated inside the controller but I was having this problem already, therefore my efforts in getting it fixed.
> 
> QQmlApplicationEngine *e;
> 
> int main(int argc, char *argv[])
> {
>     QGuiApplication app(argc, argv);
> 
>     Controller controller;
> 
>     QQmlApplicationEngine engine;
> 
>     e = &engine;
> 
>     engine.rootContext()->setContextProperty("controller", &controller);
>     engine.load(QUrl(QStringLiteral("qrc:/qml/main.qml")));
> 
>     ImageProvider imageProvider;
>     engine.addImageProvider("pictures", &imageProvider);
> 
>     QObject::connect(&app, &QGuiApplication::aboutToQuit, [=]()
>     {
>         e->removeImageProvider("pictures");
>     });
> 
>     return app.exec();
> }
> 
> Any ideas?
> 
> Regards,
> 
> Nuno
> 
>> On 25 Jul 2018, at 11:30, Jean-Michaël Celerier <jeanmichael.celerier at gmail.com <mailto:jeanmichael.celerier at gmail.com>> wrote:
>> 
>> Shouldn't you allocate your ImageProvider on the heap or at least ensure that it survives during the whole execution ? here it will be deleted by the end of your function
>> 
>> 
>> 
>> -------
>> Jean-Michaël Celerier
>> http://www.jcelerier.name <http://www.jcelerier.name/>
>> On Wed, Jul 25, 2018 at 11:24 AM, Nuno Santos <nunosantos at imaginando.pt <mailto:nunosantos at imaginando.pt>> wrote:
>> Hi,
>> 
>> Yesterday I have used for the first time a QQuickImageProvider but I’m having problems because now the app crashes when I terminate it.
>> 
>> Tried to do the following in order to avoid the crash but it is crashing anyway:
>> 
>> ImageProvider imageProvider;
>> engine.addImageProvider("pictures", &imageProvider);
>> 
>> QObject::connect(&app, &QGuiApplication::aboutToQuit, [=]()
>> {
>>     e->removeImageProvider("pictures");
>> });
>> 
>> The crash is always something like this:
>> 
>> malloc: *** error for object 0x7ffeef34e900: pointer being freed was not allocated
>> 
>> Does anyone knows how to fix this?
>> 
>> Thanks!
>> 
>> Regards,
>> 
>> Nuno
>> 
>> 
>> _______________________________________________
>> Interest mailing list
>> Interest at qt-project.org <mailto:Interest at qt-project.org>
>> http://lists.qt-project.org/mailman/listinfo/interest <http://lists.qt-project.org/mailman/listinfo/interest>
>> 
>> 
> 
> 
> 
> _______________________________________________ 
> Interest mailing list 
> Interest at qt-project.org <mailto:Interest at qt-project.org> 
> http://lists.qt-project.org/mailman/listinfo/interest <http://lists.qt-project.org/mailman/listinfo/interest> 
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org <mailto:Interest at qt-project.org>
> http://lists.qt-project.org/mailman/listinfo/interest <http://lists.qt-project.org/mailman/listinfo/interest>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20180725/633e2497/attachment.html>


More information about the Interest mailing list