summaryrefslogtreecommitdiffstats
path: root/src/notebook.c
diff options
context:
space:
mode:
authorPatrick McDermott <pj@pehjota.net>2017-10-23 07:10:55 (EDT)
committer Patrick McDermott <pj@pehjota.net>2017-10-23 07:12:00 (EDT)
commit9a0439a3b813613cb3e5b476c49426eba365c2a6 (patch)
tree865f17abfc665e4e6c0009f6fe499658005374f1 /src/notebook.c
parentf5bb04660a51569e924df0bde82ce71821edd30d (diff)
downloadmarquee-9a0439a3b813613cb3e5b476c49426eba365c2a6.zip
marquee-9a0439a3b813613cb3e5b476c49426eba365c2a6.tar.gz
marquee-9a0439a3b813613cb3e5b476c49426eba365c2a6.tar.bz2
mq_tree_foreach*(): Accept only one user data argument
And update MqNotebook. The va_copy()s didn't seem to work. va_arg() in MqNotebook's find_node_compare() returned garbage, preventing the node from being found and causing the assertion in find_node() (as called by mq_notebook_insert_sibling() and mq_notebook_insert_child()) to fail.
Diffstat (limited to 'src/notebook.c')
-rw-r--r--src/notebook.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/notebook.c b/src/notebook.c
index 5124d7b..305a2da 100644
--- a/src/notebook.c
+++ b/src/notebook.c
@@ -41,6 +41,7 @@ struct _MqNotebook {
GtkNotebook parent_instance;
MqWindow *window;
MqTabTree *tree;
+ MqTabPage *find_page;
MqTabTree *found_node;
MqTabPage *current_page;
};
@@ -175,15 +176,13 @@ mq_notebook_new(MqWindow *window)
}
static gboolean
-find_node_compare(MqTree *node, va_list ap)
+find_node_compare(MqTree *node, gpointer user_data)
{
MqNotebook *notebook;
- MqTabPage *page;
- notebook = va_arg(ap, MqNotebook *);
- page = va_arg(ap, MqTabPage *);
+ notebook = MQ_NOTEBOOK(user_data);
- if (MQ_TAB_TREE(node)->page == page) {
+ if (MQ_TAB_TREE(node)->page == notebook->find_page) {
notebook->found_node = MQ_TAB_TREE(node);
return MQ_TREE_STOP;
} else {
@@ -194,9 +193,10 @@ find_node_compare(MqTree *node, va_list ap)
static void
find_node(MqNotebook *notebook, MqTabPage *page)
{
+ notebook->find_page = page;
notebook->found_node = NULL;
- mq_tree_foreach(MQ_TREE(notebook->tree), find_node_compare, notebook,
- page);
+ mq_tree_foreach(MQ_TREE(notebook->tree), find_node_compare, notebook);
+ notebook->find_page = NULL;
g_assert(notebook->found_node);
}