chiark / gitweb /
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 6b956b75ae444aaefbb59f5031ba6dce2ed9639f..8b2acafe01713c9975759232f34c03ff04dee7a3 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 44ec081e911ba44014b9bca4228b2057a3226b0f..ac3479aa9fbda091a47c99974ced396cfe92fb7d 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;
 }
 
 /*