Lines Matching refs:state
80 walk_children (struct walk_children_state *state);
94 struct walk_children_state state =
103 state.child.parent = root;
105 if ((ret = INTUSE(dwarf_child) (&root->die, &state.child.die)) != 0)
108 return walk_children (&state);
112 walk_children (struct walk_children_state *state)
121 while (INTUSE(dwarf_tag) (&state->child.die) == DW_TAG_imported_unit)
123 Dwarf_Die orig_child_die = state->child.die;
125 Dwarf_Attribute *attr = INTUSE(dwarf_attr) (&state->child.die,
130 if (INTUSE(dwarf_formref_die) (attr, &state->child.die) != NULL
131 && INTUSE(dwarf_tag) (&state->child.die) != DW_TAG_compile_unit
132 && (INTUSE(dwarf_child) (&state->child.die, &state->child.die)
138 for (struct Dwarf_Die_Chain *import = state->imports; import != NULL;
150 struct Dwarf_Die_Chain *orig_imports = state->imports;
153 state->imports = &import;
154 int result = walk_children (state);
155 state->imports = orig_imports;
162 &state->child.die)) != 0)
166 state->child.prune = false;
169 int result = (*state->previsit) (state->depth + 1, &state->child, state->arg);
173 if (!state->child.prune && may_have_scopes (&state->child.die)
174 && INTUSE(dwarf_haschildren) (&state->child.die))
176 result = __libdw_visit_scopes (state->depth + 1, &state->child, state->imports,
177 state->previsit, state->postvisit, state->arg);
182 if (state->postvisit != NULL)
184 result = (*state->postvisit) (state->depth + 1, &state->child, state->arg);
189 while ((ret = INTUSE(dwarf_siblingof) (&state->child.die, &state->child.die)) == 0);