Skip to content

Zero-fill new GtkTextIter

Orivej Desh requested to merge orivej/gtk:patch-1 into master

iter_init_common() is used on uninitialized GtkTextIter, and since neither it nor its callers initiliaze its padding fields, they contain garbage.

This is a problem for Go - which checks that structs passed to C functions do not contain pointers to Go-allocated memory - when the garbage happens to be such a pointer. Although Go zero-fills all GtkTextIter that it allocates, this does not help when GTK functions such as insert_pixbuf_or_widget_segment called for gtk_text_buffer_create_child_anchor copy garbage from their stack-allocated GtkTextIter into a clean iter. To work around this a GtkTextIter has to be discraded after use in text buffer anchor inserting functions: https://github.com/gotk3/gotk3/pull/307

Merge request reports