static void node_traverse (Node *node) { GSList *iter; g_return_if_fail (node != NULL); g_return_if_fail (IS_NODE (node)); if (node_is_visited (node)) return; node_set_visited (node, TRUE); for (iter = node->wires; iter; iter = iter->next) { Wire *wire = iter->data; wire_traverse (wire); } }
static void node_traverse (Node *node) { GSList *wires; g_return_if_fail (node != NULL); g_return_if_fail (IS_NODE (node)); if (node_is_visited (node)) return; node_set_visited (node, TRUE); for (wires = node->wires; wires; wires = wires->next) { Wire *wire = wires->data; wire_traverse (wire); } g_slist_free_full (wires, g_object_unref); }