summaryrefslogtreecommitdiff
path: root/gtk/gtkselection.c
diff options
context:
space:
mode:
authorMichael Natterer <mitch@imendio.com>2007-09-15 16:48:56 +0000
committerMichael Natterer <mitch@src.gnome.org>2007-09-15 16:48:56 +0000
commit95116d0f1c9e2ceafaf939d8003ec9dfa4d38fcf (patch)
tree434e621f2fd9eda76cad230ea8d34a4483000a68 /gtk/gtkselection.c
parent5d49282441628879783655bd4e0bf9a4cd5aa662 (diff)
downloadgtk+-95116d0f1c9e2ceafaf939d8003ec9dfa4d38fcf.tar.gz
don't simply crash if any of the pointer args are NULL. Instead,
2007-09-15 Michael Natterer <mitch@imendio.com> * gtk/gtkselection.c (gtk_target_list_find): don't simply crash if any of the pointer args are NULL. Instead, g_return_if_fail() on "list != NULL" and allow to pass NULL as return location for "info". svn path=/trunk/; revision=18831
Diffstat (limited to 'gtk/gtkselection.c')
-rw-r--r--gtk/gtkselection.c18
1 files changed, 13 insertions, 5 deletions
diff --git a/gtk/gtkselection.c b/gtk/gtkselection.c
index 16eb1c802d..5100cd9aa0 100644
--- a/gtk/gtkselection.c
+++ b/gtk/gtkselection.c
@@ -530,10 +530,11 @@ gtk_target_list_remove (GtkTargetList *list,
* gtk_target_list_find:
* @list: a #GtkTargetList
* @target: an interned atom representing the target to search for
- * @info: a pointer to the location to store application info for target
- *
+ * @info: a pointer to the location to store application info for target,
+ * or %NULL
+ *
* Looks up a given target in a #GtkTargetList.
- *
+ *
* Return value: %TRUE if the target was found, otherwise %FALSE
**/
gboolean
@@ -541,16 +542,23 @@ gtk_target_list_find (GtkTargetList *list,
GdkAtom target,
guint *info)
{
- GList *tmp_list = list->list;
+ GList *tmp_list;
+
+ g_return_if_fail (list != NULL);
+
+ tmp_list = list->list;
while (tmp_list)
{
GtkTargetPair *pair = tmp_list->data;
if (pair->target == target)
{
- *info = pair->info;
+ if (info)
+ *info = pair->info;
+
return TRUE;
}
+
tmp_list = tmp_list->next;
}