comparison src/xmlnode.c @ 14035:8bda65b88e49

[gaim-migrate @ 16638] A bunch of small changes. Mostly remove "if not null" checks before calling g_free, g_list_free, g_slist_free and g_strdup. Also use g_list_foreach() to call g_free to free strings in an array. And some whitespace changes here and there. committer: Tailor Script <tailor@pidgin.im>
author Mark Doliner <mark@kingant.net>
date Sat, 05 Aug 2006 08:27:39 +0000
parents 3c6d0c24179a
children d38d8716426c
comparison
equal deleted inserted replaced
14034:0839a7b71325 14035:8bda65b88e49
46 static xmlnode* 46 static xmlnode*
47 new_node(const char *name, XMLNodeType type) 47 new_node(const char *name, XMLNodeType type)
48 { 48 {
49 xmlnode *node = g_new0(xmlnode, 1); 49 xmlnode *node = g_new0(xmlnode, 1);
50 50
51 if(name) 51 node->name = g_strdup(name);
52 node->name = g_strdup(name);
53 node->type = type; 52 node->type = type;
54 53
55 return node; 54 return node;
56 } 55 }
57 56
179 void xmlnode_set_namespace(xmlnode *node, const char *xmlns) 178 void xmlnode_set_namespace(xmlnode *node, const char *xmlns)
180 { 179 {
181 #ifdef HAVE_LIBXML 180 #ifdef HAVE_LIBXML
182 g_return_if_fail(node != NULL); 181 g_return_if_fail(node != NULL);
183 182
184 if (node->namespace) 183 g_free(node->namespace);
185 g_free(node->namespace);
186
187 node->namespace = g_strdup(xmlns); 184 node->namespace = g_strdup(xmlns);
188 #else 185 #else
189 return xmlnode_set_attrib(node, "xmlns", xmlns); 186 xmlnode_set_attrib(node, "xmlns", xmlns);
190 #endif 187 #endif
191 } 188 }
192 189
193 const char *xmlnode_get_namespace(xmlnode *node) 190 const char *xmlnode_get_namespace(xmlnode *node)
194 { 191 {
213 y = x->next; 210 y = x->next;
214 xmlnode_free(x); 211 xmlnode_free(x);
215 x = y; 212 x = y;
216 } 213 }
217 214
218 if(node->name) 215 g_free(node->name);
219 g_free(node->name); 216 g_free(node->data);
220 if(node->data) 217 #ifdef HAVE_LIBXML
221 g_free(node->data); 218 g_free(node->namespace);
222 #ifdef HAVE_LIBXML
223 if(node->namespace)
224 g_free(node->namespace);
225 #endif 219 #endif
226 g_free(node); 220 g_free(node);
227 } 221 }
228 222
229 xmlnode* 223 xmlnode*
309 if (node->namespace) { 303 if (node->namespace) {
310 char *namespace = g_markup_escape_text(node->namespace, -1); 304 char *namespace = g_markup_escape_text(node->namespace, -1);
311 g_string_append_printf(text, " xmlns='%s'", namespace); 305 g_string_append_printf(text, " xmlns='%s'", namespace);
312 g_free(namespace); 306 g_free(namespace);
313 } 307 }
314 #endif 308 #endif
315 for(c = node->child; c; c = c->next) 309 for(c = node->child; c; c = c->next)
316 { 310 {
317 if(c->type == XMLNODE_TYPE_ATTRIB) { 311 if(c->type == XMLNODE_TYPE_ATTRIB) {
318 esc = g_markup_escape_text(c->name, -1); 312 esc = g_markup_escape_text(c->name, -1);
319 esc2 = g_markup_escape_text(c->data, -1); 313 esc2 = g_markup_escape_text(c->data, -1);
351 g_string_append_printf(text, "/>%s", formatting ? NEWLINE_S : ""); 345 g_string_append_printf(text, "/>%s", formatting ? NEWLINE_S : "");
352 } 346 }
353 347
354 g_free(node_name); 348 g_free(node_name);
355 349
356 if(tab) 350 g_free(tab);
357 g_free(tab);
358 351
359 if(len) 352 if(len)
360 *len = text->len; 353 *len = text->len;
361 354
362 return g_string_free(text, FALSE); 355 return g_string_free(text, FALSE);
420 xpd->current = node; 413 xpd->current = node;
421 } 414 }
422 } 415 }
423 416
424 static void 417 static void
425 xmlnode_parser_element_end_libxml(void *user_data, const xmlChar *element_name, 418 xmlnode_parser_element_end_libxml(void *user_data, const xmlChar *element_name,
426 const xmlChar *prefix, const xmlChar *namespace) 419 const xmlChar *prefix, const xmlChar *namespace)
427 { 420 {
428 struct _xmlnode_parser_data *xpd = user_data; 421 struct _xmlnode_parser_data *xpd = user_data;
429 422
430 if(!element_name || !xpd->current) 423 if(!element_name || !xpd->current)