Don't allocate per-queue tabtype. In fact the allocate version broken
authorRichard Kettlewell <rjk@greenend.org.uk>
Wed, 11 Jun 2008 15:55:14 +0000 (16:55 +0100)
committerRichard Kettlewell <rjk@greenend.org.uk>
Wed, 11 Jun 2008 15:55:14 +0000 (16:55 +0100)
intermittently (because GTK+ stupidly hides pointers from the GC) but
the change is to stop allocating altogether rather than to use
g_malloc().

disobedience/queue-generic.h
disobedience/queue-menu.c

index 6b956b7..8b2acaf 100644 (file)
@@ -108,6 +108,9 @@ struct queuelike {
   
   /** @brief The popup menu */
   GtkWidget *menu;
+
+  /** @brief Menu callbacks */
+  struct tabtype tabtype;
 };
 
 extern struct queuelike ql_queue;
index 44ec081..ac3479a 100644 (file)
@@ -258,10 +258,9 @@ struct tabtype *ql_tabtype(struct queuelike *ql) {
     0
   };
 
-  struct tabtype *t = xmalloc(sizeof *t);
-  *t = ql_tabtype;
-  t->extra = ql;
-  return t;
+  ql->tabtype = ql_tabtype;
+  ql->tabtype.extra = ql;
+  return &ql->tabtype;
 }
 
 /*