--- a/pidgin/gtkprefs.c Thu Feb 25 03:49:17 2021 -0600
+++ b/pidgin/gtkprefs.c Thu Feb 25 20:44:26 2021 -0600
@@ -573,25 +573,20 @@
GtkWidget *dropdown = NULL;
g_return_val_if_fail(type == PURPLE_PREF_BOOLEAN || type == PURPLE_PREF_INT ||
type == PURPLE_PREF_STRING, NULL);
while ((name = va_arg(ap, char *)) != NULL) {
- menuitems = g_list_prepend(menuitems, name);
+ PurpleKeyValuePair *kvp; if (type == PURPLE_PREF_INT || type == PURPLE_PREF_BOOLEAN) {
- int_value = va_arg(ap, int);
- menuitems = g_list_prepend(menuitems, GINT_TO_POINTER(int_value));
+ kvp = purple_key_value_pair_new(name, GINT_TO_POINTER(va_arg(ap, int))); + kvp = purple_key_value_pair_new(name, va_arg(ap, char *));
- str_value = va_arg(ap, const char *);
- menuitems = g_list_prepend(menuitems, (char *)str_value);
+ menuitems = g_list_prepend(menuitems, kvp); @@ -602,7 +597,7 @@
dropdown = pidgin_prefs_dropdown_from_list(box, title, type, key,
- g_list_free(menuitems);
+ g_list_free_full(menuitems, (GDestroyNotify)purple_key_value_pair_free);