num_realloc);
if (num_read == 0) { /* eof */
+ xmlDocPtr doc;
+ xmlNodePtr node;
+
menu->invalid = TRUE;
menu_clear(menu);
FIFO_MENU_DATA(menu)->buf[FIFO_MENU_DATA(menu)->buflen] = '\0';
- xmlDocPtr doc = xmlParseMemory(FIFO_MENU_DATA(menu)->buf,
- FIFO_MENU_DATA(menu)->buflen);
+ doc = xmlParseMemory(FIFO_MENU_DATA(menu)->buf,
+ FIFO_MENU_DATA(menu)->buflen);
- xmlNodePtr node = xmlDocGetRootElement(doc);
+ node = xmlDocGetRootElement(doc);
if (node &&
!xmlStrcasecmp(node->name, (const xmlChar*) "fifo_menu")) {
FIFO_MENU_DATA(m)->fifo = NULL;
}
+ if (FIFO_MENU_DATA(m)->buf != NULL) {
+ g_free(FIFO_MENU_DATA(m)->buf);
+ FIFO_MENU_DATA(m)->buf = NULL;
+ }
+
g_free(m->plugin_data);
menu_free(m->name);
m = menu_new( (label != NULL ? label : ""),
(id != NULL ? id : PLUGIN_NAME),
data->parent);
- menu_add_entry(data->parent, menu_entry_new_submenu(
- (label != NULL ? label : ""),
- m));
+
+ if (data->parent)
+ menu_add_entry(data->parent, menu_entry_new_submenu(
+ (label != NULL ? label : ""),
+ m));
g_free(label);
g_free(id);