Made the custom GTK+ container's forall safer in container_unix.c.
This commit is contained in:
parent
8d7eb59fc5
commit
38772a1a4a
|
@ -86,10 +86,25 @@ static void goContainer_get_preferred_height(GtkWidget *widget, gint *min, gint
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
struct forall {
|
||||||
|
GtkCallback callback;
|
||||||
|
gpointer data;
|
||||||
|
};
|
||||||
|
|
||||||
|
static void doforall(gpointer obj, gpointer data)
|
||||||
|
{
|
||||||
|
struct forall *s = (struct forall *) data;
|
||||||
|
|
||||||
|
(*(s->callback))(GTK_WIDGET(obj), s->data);
|
||||||
|
}
|
||||||
|
|
||||||
static void goContainer_forall(GtkContainer *container, gboolean includeInternals, GtkCallback callback, gpointer data)
|
static void goContainer_forall(GtkContainer *container, gboolean includeInternals, GtkCallback callback, gpointer data)
|
||||||
{
|
{
|
||||||
/* TODO is this safe? */
|
struct forall s;
|
||||||
g_ptr_array_foreach(GOCONTAINER(container)->children, callback, data);
|
|
||||||
|
s.callback = callback;
|
||||||
|
s.data = data;
|
||||||
|
g_ptr_array_foreach(GOCONTAINER(container)->children, doforall, &s);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void goContainer_class_init(goContainerClass *class)
|
static void goContainer_class_init(goContainerClass *class)
|
||||||
|
|
Loading…
Reference in New Issue