Handle special case of using unmanaged widgets to Frame

This happens in in Ardour's Preference dialog with
e.g. BufferingOptions:

~OptionEditorContainer deletes the Option, which in turn
deletes the Widget BufferingOptions:_buffering_presets_combo
Since the widget is not managed it is not removed from its
parent.

Later ~OptionEditorContainer disposes the page layout, which
eventually also calls the Frame d'tor, causing a heap-use-after-free.
This commit is contained in:
Robin Gareus 2025-08-20 16:18:04 +02:00
parent 4cd241fab7
commit 28c8dbf128
No known key found for this signature in database
GPG key ID: A090BCE02CF57F04
2 changed files with 10 additions and 0 deletions

View file

@ -56,6 +56,8 @@ protected:
void on_style_changed (const Glib::RefPtr<Gtk::Style>&);
void on_name_changed ();
static void child_destroyed (GtkWidget*, gpointer);
private:
Glib::RefPtr<Gtk::Style> get_parent_style ();