mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-09-20 05:50:11 +00:00
Zero-fill new GtkTextIter
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
This commit is contained in:
parent
a0b5b39bbd
commit
3ec2d5fa38
@ -245,6 +245,8 @@ iter_init_common (GtkTextIter *_iter,
|
||||
g_return_val_if_fail (iter != NULL, NULL);
|
||||
g_return_val_if_fail (tree != NULL, NULL);
|
||||
|
||||
memset (iter, 0, sizeof (GtkTextRealIter));
|
||||
|
||||
iter->tree = tree;
|
||||
|
||||
iter->chars_changed_stamp =
|
||||
|
Loading…
Reference in New Issue
Block a user