Skip to content

Commit b4da3c5

Browse files
committed
gtk.cfg: Fix gtk_widget_destroy definition and usage
gtk_widget_destroy is only for GtkWidget derived objects, and in practice should only be used for GtkWindow derived widgets (it is replaced with gtk_window_destroy in gtk4).
1 parent 18f1808 commit b4da3c5

2 files changed

Lines changed: 21 additions & 5 deletions

File tree

cfg/gtk.cfg

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -909,7 +909,6 @@
909909
<alloc init="true" no-fail="true">g_zlib_decompressor_new</alloc>
910910
<use>g_object_ref</use>
911911
<dealloc>g_object_unref</dealloc>
912-
<dealloc>gtk_widget_destroy</dealloc>
913912
</memory>
914913
<memory>
915914
<alloc init="true" no-fail="true">g_tree_new</alloc>
@@ -925,6 +924,10 @@
925924
<use>g_file_attribute_matcher_ref</use>
926925
<dealloc>g_file_attribute_matcher_unref</dealloc>
927926
</memory>
927+
<memory>
928+
<alloc init="true" no-fail="true">gtk_window_new</alloc>
929+
<dealloc>gtk_widget_destroy</dealloc>
930+
</memory>
928931
<function name="g_application_get_default">
929932
<leak-ignore/>
930933
<noreturn>false</noreturn>
@@ -9693,6 +9696,14 @@
96939696
<leak-ignore/>
96949697
<noreturn>false</noreturn>
96959698
</function>
9699+
<function name="gtk_window_new">
9700+
<noreturn>false</noreturn>
9701+
<use-retval/>
9702+
<returnValue type="GtkWidget *"/>
9703+
<arg nr="1">
9704+
<not-bool/>
9705+
</arg>
9706+
</function>
96969707
<function name="gtk_window_list_toplevels">
96979708
<leak-ignore/>
96989709
<noreturn>false</noreturn>
@@ -21135,10 +21146,6 @@
2113521146
<leak-ignore/>
2113621147
<noreturn>false</noreturn>
2113721148
</function>
21138-
<function name="gtk_widget_destroy">
21139-
<leak-ignore/>
21140-
<noreturn>false</noreturn>
21141-
</function>
2114221149
<function name="gtk_widget_destroyed">
2114321150
<leak-ignore/>
2114421151
<noreturn>false</noreturn>
@@ -22972,6 +22979,9 @@
2297222979
<define name="GTK_IMAGE_ICON_NAME" value="1"/>
2297322980
<define name="GTK_IMAGE_GICON" value="2"/>
2297422981
<define name="GTK_IMAGE_PAINTABLE" value="3"/>
22982+
<!-- gtk/gtkwindow.h -->
22983+
<define name="GTK_WINDOW_TOPLEVEL" value="0"/>
22984+
<define name="GTK_WINDOW_POPUP" value="1"/>
2297522985
<!-- gtk/gtk.h -->
2297622986
<define name="GTK_STOCK_ZOOM_IN" value="&quot;gtk-zoom-in&quot;"/>
2297722987
<define name="GTK_STOCK_ZOOM_FIT" value="&quot;gtk-zoom-fit&quot;"/>

test/cfg/gtk.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -585,3 +585,9 @@ void g_tree_test() {
585585
printf("%p\n", tree2);
586586
// cppcheck-suppress memleak
587587
}
588+
589+
void gtk_widget_destroy_test() {
590+
GtkWidget *widget = gtk_window_new(GTK_WINDOW_TOPLEVEL);
591+
gtk_widget_show(widget);
592+
gtk_widget_destroy(widget);
593+
}

0 commit comments

Comments
 (0)