summaryrefslogtreecommitdiffstats
path: root/src/lib/eina_graph_dfs.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/eina_graph_dfs.c')
-rw-r--r--src/lib/eina_graph_dfs.c16
1 files changed, 6 insertions, 10 deletions
diff --git a/src/lib/eina_graph_dfs.c b/src/lib/eina_graph_dfs.c
index 3488185..2476de6 100644
--- a/src/lib/eina_graph_dfs.c
+++ b/src/lib/eina_graph_dfs.c
@@ -39,7 +39,6 @@ _eina_graph_dfs_swalk(_Eina_Graph *_g, _Eina_Graph_DFS *_dfs,
{
Eina_Array *stack = NULL;
Eina_Array *adjs;
- _Eina_Graph_DFS_Data *vd;
unsigned int p, w, n, i;
p = v;
@@ -51,10 +50,9 @@ _eina_graph_dfs_swalk(_Eina_Graph *_g, _Eina_Graph_DFS *_dfs,
w = eina_array_top_uint_get(stack);
eina_array_pop(stack);
- vd = &_dfs->data[w];
- if(vd->m) continue;
- vd->m = EINA_TRUE;
- vd->e = p;
+ if (_dfs->data[w].m) continue;
+ _dfs->data[w].m = EINA_TRUE;
+ _dfs->data[w].p = p;
p = w;
adjs = _g->adjs[w];
@@ -74,7 +72,6 @@ static void
_eina_graph_dfs_rwalk(_Eina_Graph *_g, _Eina_Graph_DFS *_dfs, unsigned int v)
{
Eina_Array *adjs;
- _Eina_Graph_DFS_Data *vd;
unsigned int i, n, w;
_dfs->data[v].m = EINA_TRUE;
@@ -84,11 +81,10 @@ _eina_graph_dfs_rwalk(_Eina_Graph *_g, _Eina_Graph_DFS *_dfs, unsigned int v)
for (i = 0; i < n; i++)
{
w = eina_array_uint_nth_get(adjs, i);
- vd = &_dfs->data[w];
- if (!vd->m)
+ if (!_dfs->data[w].m)
{
+ _dfs->data[w].p = v;
_eina_graph_dfs_rwalk(_g, _dfs, w);
- vd->e = v;
}
}
}
@@ -174,7 +170,7 @@ eina_graph_dfs_path_get(Eina_Graph_DFS *dfs, unsigned int v)
while (w != _dfs->s)
{
path = eina_list_prepend(path, CAST_V(w));
- w = _dfs->data[w].e;
+ w = _dfs->data[w].p;
}
path = eina_list_prepend(path, CAST_V(_dfs->s));