summaryrefslogtreecommitdiff
path: root/gdk
diff options
context:
space:
mode:
authorJeff Garzik <jgarzik@src.gnome.org>1999-01-21 06:24:09 +0000
committerJeff Garzik <jgarzik@src.gnome.org>1999-01-21 06:24:09 +0000
commit8dc58cb2d354ff31f17c707fabf2f6d078b40c17 (patch)
treef9d873a5e3b7b54586243edaafceecf45c714eca /gdk
parente7b04a53ac790ad6fda6b05a2eb0a71b2a2d0818 (diff)
downloadgtk+-8dc58cb2d354ff31f17c707fabf2f6d078b40c17.tar.gz
Move not-null assertion before pointer de-ref.
* gdk/gdkdnd.c (gdk_drag_context_unref): Move not-null assertion before pointer de-ref. * gdk/gdkevents.c (gdk_event_queue_find_first): Fix infinite loop bug. Someone should look at this further to make sure the events_pending tests are correct.
Diffstat (limited to 'gdk')
-rw-r--r--gdk/gdkdnd.c5
-rw-r--r--gdk/gdkevents.c4
-rw-r--r--gdk/x11/gdkdnd-x11.c5
-rw-r--r--gdk/x11/gdkevents-x11.c4
4 files changed, 12 insertions, 6 deletions
diff --git a/gdk/gdkdnd.c b/gdk/gdkdnd.c
index c3fdaa58be..b2653628a5 100644
--- a/gdk/gdkdnd.c
+++ b/gdk/gdkdnd.c
@@ -131,10 +131,11 @@ void
gdk_drag_context_unref (GdkDragContext *context)
{
GdkDragContextPrivate *private = (GdkDragContextPrivate *)context;
- private->ref_count--;
-
+
g_return_if_fail (context != NULL);
+ private->ref_count--;
+
if (private->ref_count == 0)
{
g_dataset_destroy (private);
diff --git a/gdk/gdkevents.c b/gdk/gdkevents.c
index 5eb1b7815b..75dd891ddd 100644
--- a/gdk/gdkevents.c
+++ b/gdk/gdkevents.c
@@ -153,9 +153,11 @@ gdk_event_queue_find_first (void)
while (tmp_list)
{
- GdkEventPrivate *event = queued_events->data;
+ GdkEventPrivate *event = tmp_list->data;
if (!(event->flags & GDK_EVENT_PENDING))
return tmp_list;
+
+ tmp_list = g_list_next (tmp_list);
}
return NULL;
diff --git a/gdk/x11/gdkdnd-x11.c b/gdk/x11/gdkdnd-x11.c
index c3fdaa58be..b2653628a5 100644
--- a/gdk/x11/gdkdnd-x11.c
+++ b/gdk/x11/gdkdnd-x11.c
@@ -131,10 +131,11 @@ void
gdk_drag_context_unref (GdkDragContext *context)
{
GdkDragContextPrivate *private = (GdkDragContextPrivate *)context;
- private->ref_count--;
-
+
g_return_if_fail (context != NULL);
+ private->ref_count--;
+
if (private->ref_count == 0)
{
g_dataset_destroy (private);
diff --git a/gdk/x11/gdkevents-x11.c b/gdk/x11/gdkevents-x11.c
index 5eb1b7815b..75dd891ddd 100644
--- a/gdk/x11/gdkevents-x11.c
+++ b/gdk/x11/gdkevents-x11.c
@@ -153,9 +153,11 @@ gdk_event_queue_find_first (void)
while (tmp_list)
{
- GdkEventPrivate *event = queued_events->data;
+ GdkEventPrivate *event = tmp_list->data;
if (!(event->flags & GDK_EVENT_PENDING))
return tmp_list;
+
+ tmp_list = g_list_next (tmp_list);
}
return NULL;