diff options
author | Patrick McDermott <pj@pehjota.net> | 2017-10-23 07:10:55 (EDT) |
---|---|---|
committer | Patrick McDermott <pj@pehjota.net> | 2017-10-23 07:12:00 (EDT) |
commit | 9a0439a3b813613cb3e5b476c49426eba365c2a6 (patch) | |
tree | 865f17abfc665e4e6c0009f6fe499658005374f1 /src/notebook.c | |
parent | f5bb04660a51569e924df0bde82ce71821edd30d (diff) | |
download | marquee-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.c | 14 |
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); } |