Lines Matching refs:child
28 append_edge(struct dag_node *parent, struct dag_node *child, uintptr_t data)
30 /* Remove the child as a DAG head. */
31 list_delinit(&child->link);
34 .child = child,
39 child->parent_count++;
43 * Adds a directed edge from the parent node to the child.
46 * list may contain multiple edges to the same child with different data.
49 dag_add_edge(struct dag_node *parent, struct dag_node *child, uintptr_t data)
52 if (edge->child == child && edge->data == data)
56 append_edge(parent, child, data);
60 * Adds a directed edge from the parent node to the child.
68 dag_add_edge_max_data(struct dag_node *parent, struct dag_node *child,
72 if (edge->child == child) {
78 append_edge(parent, child, data);
81 /* Removes a single edge from the graph, promoting the child to a DAG head.
90 if (!edge->child)
93 struct dag_node *child = edge->child;
94 child->parent_count--;
95 if (child->parent_count == 0)
96 list_addtail(&child->link, &dag->heads);
98 edge->child = NULL;
157 if (!_mesa_set_search(state->seen, edge->child)) {
158 util_dynarray_append(&stack, struct dag_node *, edge->child);
162 /* Get last element pushed: either left-most child or current node.