summaryrefslogtreecommitdiff
path: root/pidgin
diff options
context:
space:
mode:
authorElliott Sales de Andrade <quantum.analyst@gmail.com>2023-03-22 03:21:17 -0500
committerElliott Sales de Andrade <quantum.analyst@gmail.com>2023-03-22 03:21:17 -0500
commit08482043fc1f5ce69bb669dd24e17107b94d346f (patch)
tree02d4ebdef97e3df7f1fba7df500f80c0a3f4bc89 /pidgin
parent14d0b20a044d5496a97eb88f5da4e8aaac4c0a93 (diff)
downloadpidgin-08482043fc1f5ce69bb669dd24e17107b94d346f.tar.gz
Fix leaks from g_list_model_get_item
It returns a new reference, which needs to be unref'd. Testing Done: Compiled only, and ran tests, though these issues didn't show up in valgrind anyway. Reviewed at https://reviews.imfreedom.org/r/2377/
Diffstat (limited to 'pidgin')
-rw-r--r--pidgin/pidginaccounteditor.c10
-rw-r--r--pidgin/pidgincontactlist.c3
-rw-r--r--pidgin/pidginprotocolchooser.c2
-rw-r--r--pidgin/prefs/pidginprefs.c9
4 files changed, 15 insertions, 9 deletions
diff --git a/pidgin/pidginaccounteditor.c b/pidgin/pidginaccounteditor.c
index 05021d668a..58662b0c9b 100644
--- a/pidgin/pidginaccounteditor.c
+++ b/pidgin/pidginaccounteditor.c
@@ -615,10 +615,12 @@ pidgin_account_editor_update_proxy_options(PidginAccountEditor *editor) {
}
model = adw_combo_row_get_model(ADW_COMBO_ROW(editor->proxy_type));
- for(guint i = 0; i < g_list_model_get_n_items(model); i++) {
- GtkStringObject *obj = g_list_model_get_item(model, i);
- if(purple_strequal(type, gtk_string_object_get_string(obj))) {
- position = i;
+ for(guint index = 0; index < g_list_model_get_n_items(model); index++) {
+ const char *value = gtk_string_list_get_string(GTK_STRING_LIST(model),
+ index);
+
+ if(purple_strequal(type, value)) {
+ position = index;
break;
}
}
diff --git a/pidgin/pidgincontactlist.c b/pidgin/pidgincontactlist.c
index 6d84032ca3..91a4047927 100644
--- a/pidgin/pidgincontactlist.c
+++ b/pidgin/pidgincontactlist.c
@@ -139,6 +139,7 @@ pidgin_contact_list_activate_cb(GtkListView *self, guint position,
if(!PURPLE_IS_PERSON(person)) {
g_warning("we seem to have activated a zombie.. RUN!!!!!!");
+ g_clear_object(&person);
return;
}
@@ -153,6 +154,8 @@ pidgin_contact_list_activate_cb(GtkListView *self, guint position,
conversation = purple_im_conversation_new(account, name);
purple_conversation_manager_register(manager, conversation);
}
+
+ g_clear_object(&person);
}
static gboolean
diff --git a/pidgin/pidginprotocolchooser.c b/pidgin/pidginprotocolchooser.c
index a622dbe864..7cdcc72f4a 100644
--- a/pidgin/pidginprotocolchooser.c
+++ b/pidgin/pidginprotocolchooser.c
@@ -175,8 +175,10 @@ pidgin_protocol_chooser_set_protocol(PidginProtocolChooser *chooser,
if(this_protocol == protocol) {
position = i;
+ g_object_unref(this_protocol);
break;
}
+ g_object_unref(this_protocol);
}
}
diff --git a/pidgin/prefs/pidginprefs.c b/pidgin/prefs/pidginprefs.c
index 9296f25dde..3a5d597d69 100644
--- a/pidgin/prefs/pidginprefs.c
+++ b/pidgin/prefs/pidginprefs.c
@@ -378,16 +378,15 @@ bind_combo_row_set(GObject *obj, G_GNUC_UNUSED GParamSpec *pspec,
void
pidgin_prefs_bind_combo_row(const gchar *key, GtkWidget *widget) {
- GListModel *model = NULL;
+ GtkStringList *model = NULL;
const char *pref_value = NULL;
guint selected = GTK_INVALID_LIST_POSITION;
pref_value = purple_prefs_get_string(key);
- model = adw_combo_row_get_model(ADW_COMBO_ROW(widget));
+ model = GTK_STRING_LIST(adw_combo_row_get_model(ADW_COMBO_ROW(widget)));
- for(guint i = 0; i < g_list_model_get_n_items(model); i++) {
- GtkStringObject *obj = g_list_model_get_item(model, i);
- const gchar *value = gtk_string_object_get_string(obj);
+ for(guint i = 0; i < g_list_model_get_n_items(G_LIST_MODEL(model)); i++) {
+ const char *value = gtk_string_list_get_string(model, i);
if (purple_strequal(pref_value, value)) {
selected = i;