Home | History | Annotate | Download | only in libdw

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,
128 if (INTUSE(dwarf_formref_die) (attr, &state->child.die) != NULL
129 && INTUSE(dwarf_child) (&state->child.die, &state->child.die) == 0)
134 for (struct Dwarf_Die_Chain *import = state->imports; import != NULL;
146 struct Dwarf_Die_Chain *orig_imports = state->imports;
149 state->imports = &import;
150 int result = walk_children (state);
151 state->imports = orig_imports;
158 &state->child.die)) != 0)
162 state->child.prune = false;
165 int result = (*state->previsit) (state->depth + 1, &state->child, state->arg);
169 if (!state->child.prune && may_have_scopes (&state->child.die)
170 && INTUSE(dwarf_haschildren) (&state->child.die))
172 result = __libdw_visit_scopes (state->depth + 1, &state->child, state->imports,
173 state->previsit, state->postvisit, state->arg);
178 if (state->postvisit != NULL)
180 result = (*state->postvisit) (state->depth + 1, &state->child, state->arg);
185 while ((ret = INTUSE(dwarf_siblingof) (&state->child.die, &state->child.die)) == 0);