# HG changeset patch # User Daniel Atallah # Date 1192404412 0 # Node ID 6739d93f95c17c4f4d389c6173a51f5cb5ab9fc7 # Parent 999b77dcb63f5ed63b4bbb6e2df3dfdb6490d5e9 Fix reference leak of AtkObjects. Prevent an unnecessary allocation in pidgin_check_if_dir(). diff -r 999b77dcb63f -r 6739d93f95c1 pidgin/gtkutils.c --- a/pidgin/gtkutils.c Sun Oct 14 22:48:52 2007 +0000 +++ b/pidgin/gtkutils.c Sun Oct 14 23:26:52 2007 +0000 @@ -850,16 +850,14 @@ gboolean pidgin_check_if_dir(const char *path, GtkFileSelection *filesel) { - char *dirname; + char *dirname = NULL; if (g_file_test(path, G_FILE_TEST_IS_DIR)) { /* append a / if needed */ if (path[strlen(path) - 1] != G_DIR_SEPARATOR) { dirname = g_strconcat(path, G_DIR_SEPARATOR_S, NULL); - } else { - dirname = g_strdup(path); } - gtk_file_selection_set_filename(filesel, dirname); + gtk_file_selection_set_filename(filesel, (dirname != NULL) ? dirname : path); g_free(dirname); return TRUE; } @@ -1178,14 +1176,15 @@ label = gtk_widget_get_accessible (l); /* Make sure mnemonics work */ - gtk_label_set_mnemonic_widget(GTK_LABEL(l), w); - + gtk_label_set_mnemonic_widget(GTK_LABEL(l), w); + /* Create the labeled-by relation */ set = atk_object_ref_relation_set (acc); rel_obj[0] = label; relation = atk_relation_new (rel_obj, 1, ATK_RELATION_LABELLED_BY); atk_relation_set_add (set, relation); g_object_unref (relation); + g_object_unref(set); /* Create the label-for relation */ set = atk_object_ref_relation_set (label); @@ -1193,6 +1192,7 @@ relation = atk_relation_new (rel_obj, 1, ATK_RELATION_LABEL_FOR); atk_relation_set_add (set, relation); g_object_unref (relation); + g_object_unref(set); } void