Hi,

El 21/06/17 a las 00:04, Daniel Boles <dboles....@gmail.com> escribió:
meaning that the returned Application is not referenced, and can be
double-freed
specifically, if I'm right, it IS double-freed, plus you try to use it
after the 1st free:

    - you instantiate an unnamed RefPtr<Application> from get_default()
    - it immediately gets destroyed and decrements the reference count
    - which, because it didn't increment upon construction, causes the
    Application to get destroyed
    - then, on closing the window, it calls something on the Application to
    say 'one of your windows is gone', but there IS no Application!
    - boom.

Instanciating a named RefPtr<Application>, i get the same segmentation fault:

Glib::RefPtr<Gio::Application> app1 = Gtk::Application::get_default();

Running the app from the command line, the terminal holds at the third click on the button.

Something similar happens to me in simple-netaid-gtk, the terminal holds after closing the window, i don't know why. So, added exit(0) to the destructor of the mainwindow, as you can see in window_main.cpp:

https://git.devuan.org/aitor_czr/simple-netaid-gtk/blob/master/src/window_main.cpp

Cheers,

  Aitor.






_______________________________________________
gtkmm-list mailing list
gtkmm-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtkmm-list

Reply via email to