Skip to content

Commit 435e7b4

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 2d6f23e commit 435e7b4

2 files changed

Lines changed: 18 additions & 5 deletions

File tree

cfg/gtk.cfg

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -910,7 +910,6 @@
910910
<alloc init="true" no-fail="true">g_zlib_decompressor_new</alloc>
911911
<use>g_object_ref</use>
912912
<dealloc>g_object_unref</dealloc>
913-
<dealloc>gtk_widget_destroy</dealloc>
914913
</memory>
915914
<memory>
916915
<alloc init="true" no-fail="true">g_tree_new</alloc>
@@ -926,6 +925,10 @@
926925
<use>g_file_attribute_matcher_ref</use>
927926
<dealloc>g_file_attribute_matcher_unref</dealloc>
928927
</memory>
928+
<memory>
929+
<alloc init="true" no-fail="true">gtk_window_new</alloc>
930+
<dealloc>gtk_widget_destroy</dealloc>
931+
</memory>
929932
<function name="g_exit">
930933
<noreturn>true</noreturn>
931934
</function>
@@ -9688,6 +9691,14 @@
96889691
<leak-ignore/>
96899692
<noreturn>false</noreturn>
96909693
</function>
9694+
<function name="gtk_window_new">
9695+
<noreturn>false</noreturn>
9696+
<use-retval/>
9697+
<returnValue type="GtkWidget *"/>
9698+
<arg nr="1">
9699+
<not-bool/>
9700+
</arg>
9701+
</function>
96919702
<function name="gtk_window_list_toplevels">
96929703
<leak-ignore/>
96939704
<noreturn>false</noreturn>
@@ -21130,10 +21141,6 @@
2113021141
<leak-ignore/>
2113121142
<noreturn>false</noreturn>
2113221143
</function>
21133-
<function name="gtk_widget_destroy">
21134-
<leak-ignore/>
21135-
<noreturn>false</noreturn>
21136-
</function>
2113721144
<function name="gtk_widget_destroyed">
2113821145
<leak-ignore/>
2113921146
<noreturn>false</noreturn>

test/cfg/gtk.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -581,3 +581,9 @@ void g_tree_test() {
581581
printf("%p\n", tree2);
582582
// cppcheck-suppress memleak
583583
}
584+
585+
void gtk_widget_destroy_test() {
586+
GtkWidget *widget = gtk_window_new(GTK_WINDOW_TOPLEVEL);
587+
gtk_widget_show(widget);
588+
gtk_widget_destroy(widget);
589+
}

0 commit comments

Comments
 (0)