[gimp] Issue #7106: GIMP 2.99.6 Python Script Fatal Error.



commit 1e31b6530de62a7da5771ff55760a98018cedb23
Author: Jehan <jehan girinstud io>
Date:   Mon Aug 2 01:32:27 2021 +0200

    Issue #7106: GIMP 2.99.6 Python Script Fatal Error.
    
    All objects of subclass GtkWindow are special as they are actually owned
    by GTK which keeps a list of all top-level windows. So we cannot
    actually give ownership to the caller. With GObject Introspection in
    particular, it will mean a double-free of the dialog object (by GTK,
    then by the GI layer).
    
    See also gobject-introspection#394.

 libgimp/gimpproceduredialog.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)
---
diff --git a/libgimp/gimpproceduredialog.c b/libgimp/gimpproceduredialog.c
index 1468d9d2b4..33b794899e 100644
--- a/libgimp/gimpproceduredialog.c
+++ b/libgimp/gimpproceduredialog.c
@@ -392,7 +392,12 @@ gimp_procedure_dialog_real_fill_list (GimpProcedureDialog *dialog,
  * dialog title instead). If neither an explicit label nor a @procedure
  * menu label was set, the call will fail.
  *
- * Returns: (transfer full): the newly created #GimpProcedureDialog.
+ * As for all #GtkWindow, the returned #GimpProcedureDialog object is
+ * owned by GTK and its initial reference is stored in an internal list
+ * of top-level windows. To delete the dialog, call
+ * gtk_widget_destroy().
+ *
+ * Returns: (transfer none): the newly created #GimpProcedureDialog.
  */
 GtkWidget *
 gimp_procedure_dialog_new (GimpProcedure       *procedure,


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]