diff --git a/gtk/gtkobject.c b/gtk/gtkobject.c index a2b67e4a1f..c1ca971d1f 100644 --- a/gtk/gtkobject.c +++ b/gtk/gtkobject.c @@ -997,7 +997,6 @@ gtk_object_set_data_by_id_full (GtkObject *object, GtkDestroyNotify destroy) { GtkObjectData *odata; - GtkObjectData *prev; g_return_if_fail (object != NULL); g_return_if_fail (GTK_IS_OBJECT (object)); @@ -1006,6 +1005,8 @@ gtk_object_set_data_by_id_full (GtkObject *object, odata = object->object_data; if (!data) { + GtkObjectData *prev; + prev = NULL; while (odata) @@ -1027,6 +1028,10 @@ gtk_object_set_data_by_id_full (GtkObject *object, } else { + GtkObjectData *prev; + + prev = NULL; + while (odata) { if (odata->id == data_id) @@ -1051,7 +1056,8 @@ gtk_object_set_data_by_id_full (GtkObject *object, return; } - odata = odata->next; + prev = odata; + odata = prev->next; } if (gtk_object_data_free_list) @@ -1584,14 +1590,16 @@ gtk_trace_referencing (GtkObject *object, guint line, gboolean do_ref) { - gboolean exists; - if (gtk_debug_flags & GTK_DEBUG_OBJECTS) { + gboolean exists = TRUE; + g_return_if_fail (object != NULL); g_return_if_fail (GTK_IS_OBJECT (object)); +#ifdef G_ENABLE_DEBUG exists = g_hash_table_lookup (living_objs_ht, object) != NULL; +#endif /* G_ENABLE_DEBUG */ if (exists && (object == gtk_trace_object ||