summaryrefslogtreecommitdiffstats
path: root/isisd/isis_flags.c
diff options
context:
space:
mode:
Diffstat (limited to 'isisd/isis_flags.c')
-rw-r--r--isisd/isis_flags.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/isisd/isis_flags.c b/isisd/isis_flags.c
index 03c91101..7d210cfd 100644
--- a/isisd/isis_flags.c
+++ b/isisd/isis_flags.c
@@ -48,10 +48,11 @@ flags_get_index (struct flags *flags)
}
else
{
+ uintptr_t pi ;
node = listhead (flags->free_idcs);
- index = (int) listgetdata (node);
- listnode_delete (flags->free_idcs, (void *) index);
- index--;
+ pi = (uintptr_t)listgetdata (node);
+ listnode_delete (flags->free_idcs, (void*)pi);
+ index = (int)(pi - 1) ;
}
return index;
@@ -60,6 +61,8 @@ flags_get_index (struct flags *flags)
void
flags_free_index (struct flags *flags, int index)
{
+ uintptr_t pi ;
+
if (index + 1 == flags->maxindex)
{
flags->maxindex--;
@@ -71,7 +74,8 @@ flags_free_index (struct flags *flags, int index)
flags->free_idcs = list_new ();
}
- listnode_add (flags->free_idcs, (void *) (index + 1));
+ pi = (uintptr_t)index + 1 ;
+ listnode_add (flags->free_idcs, (void*)pi) ;
return;
}