graph.h: replace hardcoded values with an enum
Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com>
This commit is contained in:
parent
13ec13c85e
commit
9c763a0d1b
3 changed files with 14 additions and 8 deletions
|
@ -130,7 +130,7 @@ static void dijkstra(alpm_list_t *vertices)
|
||||||
for(i = vertices; i; i = i->next) {
|
for(i = vertices; i; i = i->next) {
|
||||||
alpm_graph_t *v_i = i->data;
|
alpm_graph_t *v_i = i->data;
|
||||||
|
|
||||||
if(v_i->state == -1) {
|
if(v_i->state == ALPM_GRAPH_STATE_PROCESSING) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -142,7 +142,7 @@ static void dijkstra(alpm_list_t *vertices)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
v->state = -1;
|
v->state = ALPM_GRAPH_STATE_PROCESSING;
|
||||||
|
|
||||||
v->childptr = v->children;
|
v->childptr = v->children;
|
||||||
while(v->childptr) {
|
while(v->childptr) {
|
||||||
|
|
|
@ -194,16 +194,16 @@ alpm_list_t *_alpm_sortbydeps(alpm_handle_t *handle,
|
||||||
vertex = vertices->data;
|
vertex = vertices->data;
|
||||||
while(vptr) {
|
while(vptr) {
|
||||||
/* mark that we touched the vertex */
|
/* mark that we touched the vertex */
|
||||||
vertex->state = -1;
|
vertex->state = ALPM_GRAPH_STATE_PROCESSING;
|
||||||
int found = 0;
|
int found = 0;
|
||||||
while(vertex->childptr && !found) {
|
while(vertex->childptr && !found) {
|
||||||
alpm_graph_t *nextchild = vertex->childptr->data;
|
alpm_graph_t *nextchild = vertex->childptr->data;
|
||||||
vertex->childptr = vertex->childptr->next;
|
vertex->childptr = vertex->childptr->next;
|
||||||
if(nextchild->state == 0) {
|
if(nextchild->state == ALPM_GRAPH_STATE_UNPROCESSED) {
|
||||||
found = 1;
|
found = 1;
|
||||||
nextchild->parent = vertex;
|
nextchild->parent = vertex;
|
||||||
vertex = nextchild;
|
vertex = nextchild;
|
||||||
} else if(nextchild->state == -1) {
|
} else if(nextchild->state == ALPM_GRAPH_STATE_PROCESSING) {
|
||||||
/* child is an ancestor of vertex */
|
/* child is an ancestor of vertex */
|
||||||
alpm_graph_t *transvertex = vertex;
|
alpm_graph_t *transvertex = vertex;
|
||||||
|
|
||||||
|
@ -244,13 +244,13 @@ alpm_list_t *_alpm_sortbydeps(alpm_handle_t *handle,
|
||||||
newtargs = alpm_list_add(newtargs, vertex->data);
|
newtargs = alpm_list_add(newtargs, vertex->data);
|
||||||
}
|
}
|
||||||
/* mark that we've left this vertex */
|
/* mark that we've left this vertex */
|
||||||
vertex->state = 1;
|
vertex->state = ALPM_GRAPH_STATE_PROCESSED;
|
||||||
vertex = vertex->parent;
|
vertex = vertex->parent;
|
||||||
if(!vertex) {
|
if(!vertex) {
|
||||||
/* top level vertex reached, move to the next unprocessed vertex */
|
/* top level vertex reached, move to the next unprocessed vertex */
|
||||||
for( vptr = vptr->next; vptr; vptr = vptr->next) {
|
for( vptr = vptr->next; vptr; vptr = vptr->next) {
|
||||||
vertex = vptr->data;
|
vertex = vptr->data;
|
||||||
if(vertex->state == 0) {
|
if(vertex->state == ALPM_GRAPH_STATE_UNPROCESSED) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,13 +23,19 @@
|
||||||
|
|
||||||
#include "alpm_list.h"
|
#include "alpm_list.h"
|
||||||
|
|
||||||
|
enum __alpm_graph_vertex_state {
|
||||||
|
ALPM_GRAPH_STATE_UNPROCESSED,
|
||||||
|
ALPM_GRAPH_STATE_PROCESSING,
|
||||||
|
ALPM_GRAPH_STATE_PROCESSED
|
||||||
|
};
|
||||||
|
|
||||||
typedef struct __alpm_graph_t {
|
typedef struct __alpm_graph_t {
|
||||||
void *data;
|
void *data;
|
||||||
struct __alpm_graph_t *parent; /* where did we come from? */
|
struct __alpm_graph_t *parent; /* where did we come from? */
|
||||||
alpm_list_t *children;
|
alpm_list_t *children;
|
||||||
alpm_list_t *childptr; /* points to a child in children list */
|
alpm_list_t *childptr; /* points to a child in children list */
|
||||||
off_t weight; /* weight of the node */
|
off_t weight; /* weight of the node */
|
||||||
signed char state; /* 0: untouched, -1: entered, other: leaving time */
|
enum __alpm_graph_vertex_state state;
|
||||||
} alpm_graph_t;
|
} alpm_graph_t;
|
||||||
|
|
||||||
alpm_graph_t *_alpm_graph_new(void);
|
alpm_graph_t *_alpm_graph_new(void);
|
||||||
|
|
Loading…
Add table
Reference in a new issue