comparison src/pluginpref.c @ 8745:6c0fae7a4f1a

[gaim-migrate @ 9500] " fixed up an issue in the example plugin and a memory leak and some other code.." --Gary Kramlich committer: Tailor Script <tailor@pidgin.im>
author Luke Schierer <lschiere@pidgin.im>
date Wed, 21 Apr 2004 21:05:08 +0000
parents 7024b595b6ae
children ffb333368cdc
comparison
equal deleted inserted replaced
8744:0f73e8204529 8745:6c0fae7a4f1a
56 } 56 }
57 57
58 void 58 void
59 gaim_plugin_pref_frame_destroy(GaimPluginPrefFrame *frame) { 59 gaim_plugin_pref_frame_destroy(GaimPluginPrefFrame *frame) {
60 GaimPluginPref *pref; 60 GaimPluginPref *pref;
61 GList *l, *ll; 61 GList *l;
62 62
63 g_return_if_fail(frame); 63 g_return_if_fail(frame);
64 64
65 for(l = frame->prefs; l != NULL; l = ll) { 65 for(l = frame->prefs; l != NULL; l = l->next) {
66 ll = l->next;
67
68 pref = (GaimPluginPref *)l->data; 66 pref = (GaimPluginPref *)l->data;
69 gaim_plugin_pref_destroy(pref); 67 gaim_plugin_pref_destroy(pref);
70 68 }
71 g_list_free_1(l); 69
72 } 70 g_list_free(frame->prefs);
73 71 frame->prefs = NULL;
72
73 g_free(frame);
74 frame = NULL; 74 frame = NULL;
75 } 75 }
76 76
77 void 77 void
78 gaim_plugin_pref_frame_add(GaimPluginPrefFrame *frame, GaimPluginPref *pref) { 78 gaim_plugin_pref_frame_add(GaimPluginPrefFrame *frame, GaimPluginPref *pref) {
79 g_return_if_fail(frame); 79 g_return_if_fail(frame);
80 g_return_if_fail(pref); 80 g_return_if_fail(pref);
81 81
82 frame->prefs = g_list_append(frame->prefs, (gpointer)pref); 82 frame->prefs = g_list_append(frame->prefs, pref);
83 } 83 }
84 84
85 GList * 85 GList *
86 gaim_plugin_pref_frame_get_prefs(GaimPluginPrefFrame *frame) { 86 gaim_plugin_pref_frame_get_prefs(GaimPluginPrefFrame *frame) {
87 g_return_val_if_fail(frame, NULL);
88 g_return_val_if_fail(frame->prefs, NULL);
89
87 return frame->prefs; 90 return frame->prefs;
88 } 91 }
89 92
90 GaimPluginPref * 93 GaimPluginPref *
91 gaim_plugin_pref_new() { 94 gaim_plugin_pref_new() {
138 gaim_plugin_pref_destroy(GaimPluginPref *pref) { 141 gaim_plugin_pref_destroy(GaimPluginPref *pref) {
139 GList *l, *ll; 142 GList *l, *ll;
140 143
141 g_return_if_fail(pref); 144 g_return_if_fail(pref);
142 145
143 if(pref->name) 146 if(pref->name) {
144 g_free(pref->name); 147 g_free(pref->name);
145 148 pref->name = NULL;
146 if(pref->label) 149 }
150
151 if(pref->label) {
147 g_free(pref->label); 152 g_free(pref->label);
148 153 pref->label = NULL;
149 l = pref->choices; 154 }
150 while(l) { 155
151 ll = l->next; 156 if(pref->choices) {
152 157 g_list_free(pref->choices);
153 g_free(l->data); 158 pref->choices = NULL;
154 g_list_free_1(l);
155
156 l = l->next;
157 } 159 }
158 160
159 g_free(pref); 161 g_free(pref);
160 } 162 }
161 163
256 258
257 pref->choices = g_list_append(pref->choices, label); 259 pref->choices = g_list_append(pref->choices, label);
258 pref->choices = g_list_append(pref->choices, choice); 260 pref->choices = g_list_append(pref->choices, choice);
259 } 261 }
260 262
261 gpointer
262 gaim_plugin_pref_get_choice(GaimPluginPref *pref, unsigned int index) {
263 g_return_val_if_fail(pref, NULL);
264
265 if(index > g_list_length(pref->choices))
266 return NULL;
267
268 return g_list_nth_data(pref->choices, index);
269 }
270
271 GList * 263 GList *
272 gaim_plugin_pref_get_choices(GaimPluginPref *pref) { 264 gaim_plugin_pref_get_choices(GaimPluginPref *pref) {
273 g_return_val_if_fail(pref, NULL); 265 g_return_val_if_fail(pref, NULL);
274 266
275 return pref->choices; 267 return pref->choices;