On 17/11/2015 11:31, John Emmas wrote:

    template <class T_CppObject> inline
    RefPtr<T_CppObject>::~RefPtr()
    {
      if(pCppObject_)
pCppObject_->unreference(); // This could cause pCppObject to be deleted.
        //  ^ ^ ^  CRASH HAPPENS HERE
    }

and the above seems to get called during this 'destroy_()' call in 'gtkmm/gtk/gtkmm/window.cc':-

    Window::~Window()
    {
      destroy_();
    }

My guess would be that there is indeed some kind of double deletion happening. I'll spend another hour or so on it and see if I can get any further...


I didn't really get much further - except to realise that the crash doesn't happen in that 'destroy_()' call - it actually happens after the call (when 'Window' goes out of scope). So my gut feeling is that this probably isn't a double deletion. Maybe 'pCppObject_->unreference()' is getting called for an object that's already gone out of scope? Is that even possible..?

John
_______________________________________________
gtkmm-list mailing list
[email protected]
https://mail.gnome.org/mailman/listinfo/gtkmm-list

Reply via email to