comparison libpurple/accountopt.c @ 28041:b5e52173ef67

Free the KeyValuePairs associated with accountopt lists. Closes #9115. Patch from Stefan Becker with minor addition by me. committer: Paul Aurich <paul@darkrain42.org>
author stefan.becker@nokia.com
date Mon, 27 Jul 2009 23:14:24 +0000
parents 6bf32c9e15a7
children 6e27091869eb
comparison
equal deleted inserted replaced
28040:b6f26015c51c 28041:b5e52173ef67
109 option->default_value.list = list; 109 option->default_value.list = list;
110 110
111 return option; 111 return option;
112 } 112 }
113 113
114 static void
115 purple_account_option_list_free(gpointer data, gpointer user_data)
116 {
117 PurpleKeyValuePair *kvp = data;
118
119 g_free(kvp->value);
120 g_free(kvp->key);
121 g_free(kvp);
122 }
123
114 void 124 void
115 purple_account_option_destroy(PurpleAccountOption *option) 125 purple_account_option_destroy(PurpleAccountOption *option)
116 { 126 {
117 g_return_if_fail(option != NULL); 127 g_return_if_fail(option != NULL);
118 128
125 } 135 }
126 else if (option->type == PURPLE_PREF_STRING_LIST) 136 else if (option->type == PURPLE_PREF_STRING_LIST)
127 { 137 {
128 if (option->default_value.list != NULL) 138 if (option->default_value.list != NULL)
129 { 139 {
130 g_list_foreach(option->default_value.list, (GFunc)g_free, NULL); 140 g_list_foreach(option->default_value.list, purple_account_option_list_free, NULL);
131 g_list_free(option->default_value.list); 141 g_list_free(option->default_value.list);
132 } 142 }
133 } 143 }
134 144
135 g_free(option); 145 g_free(option);
181 g_return_if_fail(option != NULL); 191 g_return_if_fail(option != NULL);
182 g_return_if_fail(option->type == PURPLE_PREF_STRING_LIST); 192 g_return_if_fail(option->type == PURPLE_PREF_STRING_LIST);
183 193
184 if (option->default_value.list != NULL) 194 if (option->default_value.list != NULL)
185 { 195 {
186 g_list_foreach(option->default_value.list, (GFunc)g_free, NULL); 196 g_list_foreach(option->default_value.list, purple_account_option_list_free, NULL);
187 g_list_free(option->default_value.list); 197 g_list_free(option->default_value.list);
188 } 198 }
189 199
190 option->default_value.list = values; 200 option->default_value.list = values;
191 } 201 }