Mercurial > pidgin.yaz
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 } |