mirror of https://github.com/GNOME/gimp.git
as Mitch pointed out we used to leak GList memory here. The new
2000-10-18 Sven Neumann <sven@gimp.org> * app/cursorutil.c (gtkutil_compress_motion): as Mitch pointed out we used to leak GList memory here. The new implementation should be faster too, since it prepends to the list instead of appending.
This commit is contained in:
parent
f9e6d16cc3
commit
22616e80f4
|
@ -1,3 +1,9 @@
|
|||
2000-10-18 Sven Neumann <sven@gimp.org>
|
||||
|
||||
* app/cursorutil.c (gtkutil_compress_motion): as Mitch pointed out we
|
||||
used to leak GList memory here. The new implementation should be
|
||||
faster too, since it prepends to the list instead of appending.
|
||||
|
||||
2000-10-18 Michael Natterer <mitch@gimp.org>
|
||||
|
||||
* plug-ins/helpbrowser/Makefile.am: added $GTK_CFLAGS and $GTK_LIBS.
|
||||
|
|
|
@ -511,8 +511,9 @@ gtkutil_compress_motion (GtkWidget *widget,
|
|||
gdouble *lastmotion_y)
|
||||
{
|
||||
GdkEvent *event;
|
||||
GList *requeued_events = NULL;
|
||||
gboolean success = FALSE;
|
||||
GList *requeued_events = NULL;
|
||||
GList *list;
|
||||
gboolean success = FALSE;
|
||||
|
||||
/* Move the entire GDK event queue to a private list, filtering
|
||||
out any motion events for the desired widget. */
|
||||
|
@ -535,20 +536,22 @@ gtkutil_compress_motion (GtkWidget *widget,
|
|||
}
|
||||
else
|
||||
{
|
||||
requeued_events = g_list_append (requeued_events, event);
|
||||
requeued_events = g_list_prepend (requeued_events, event);
|
||||
}
|
||||
}
|
||||
|
||||
/* Replay the remains of our private event list back into the
|
||||
event queue in order. */
|
||||
while (requeued_events)
|
||||
{
|
||||
gdk_event_put ((GdkEvent*) requeued_events->data);
|
||||
|
||||
gdk_event_free ((GdkEvent*) requeued_events->data);
|
||||
requeued_events =
|
||||
g_list_remove_link (requeued_events, requeued_events);
|
||||
requeued_events = g_list_reverse (requeued_events);
|
||||
|
||||
for (list = requeued_events; list; list = g_list_next (list))
|
||||
{
|
||||
gdk_event_put ((GdkEvent*) list->data);
|
||||
gdk_event_free ((GdkEvent*) list->data);
|
||||
}
|
||||
|
||||
g_list_free (requeued_events);
|
||||
|
||||
return success;
|
||||
}
|
||||
|
|
|
@ -511,8 +511,9 @@ gtkutil_compress_motion (GtkWidget *widget,
|
|||
gdouble *lastmotion_y)
|
||||
{
|
||||
GdkEvent *event;
|
||||
GList *requeued_events = NULL;
|
||||
gboolean success = FALSE;
|
||||
GList *requeued_events = NULL;
|
||||
GList *list;
|
||||
gboolean success = FALSE;
|
||||
|
||||
/* Move the entire GDK event queue to a private list, filtering
|
||||
out any motion events for the desired widget. */
|
||||
|
@ -535,20 +536,22 @@ gtkutil_compress_motion (GtkWidget *widget,
|
|||
}
|
||||
else
|
||||
{
|
||||
requeued_events = g_list_append (requeued_events, event);
|
||||
requeued_events = g_list_prepend (requeued_events, event);
|
||||
}
|
||||
}
|
||||
|
||||
/* Replay the remains of our private event list back into the
|
||||
event queue in order. */
|
||||
while (requeued_events)
|
||||
{
|
||||
gdk_event_put ((GdkEvent*) requeued_events->data);
|
||||
|
||||
gdk_event_free ((GdkEvent*) requeued_events->data);
|
||||
requeued_events =
|
||||
g_list_remove_link (requeued_events, requeued_events);
|
||||
requeued_events = g_list_reverse (requeued_events);
|
||||
|
||||
for (list = requeued_events; list; list = g_list_next (list))
|
||||
{
|
||||
gdk_event_put ((GdkEvent*) list->data);
|
||||
gdk_event_free ((GdkEvent*) list->data);
|
||||
}
|
||||
|
||||
g_list_free (requeued_events);
|
||||
|
||||
return success;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue