summaryrefslogtreecommitdiffstats
path: root/crypto/pqueue/pqueue.c
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/pqueue/pqueue.c')
-rw-r--r--crypto/pqueue/pqueue.c21
1 files changed, 13 insertions, 8 deletions
diff --git a/crypto/pqueue/pqueue.c b/crypto/pqueue/pqueue.c
index f4fa37fe64..6ec5c6756c 100644
--- a/crypto/pqueue/pqueue.c
+++ b/crypto/pqueue/pqueue.c
@@ -68,12 +68,14 @@ typedef struct _pqueue
} pqueue_s;
pitem *
-pitem_new(BN_ULLONG priority, void *data)
+pitem_new(PQ_64BIT priority, void *data)
{
pitem *item = (pitem *) OPENSSL_malloc(sizeof(pitem));
if (item == NULL) return NULL;
- item->priority = priority;
+ pq_64bit_init(&(item->priority));
+ pq_64bit_assign(&item->priority, &priority);
+
item->data = data;
item->next = NULL;
@@ -84,7 +86,8 @@ void
pitem_free(pitem *item)
{
if (item == NULL) return;
-
+
+ pq_64bit_free(&(item->priority));
OPENSSL_free(item);
}
@@ -121,7 +124,7 @@ pqueue_insert(pqueue_s *pq, pitem *item)
next != NULL;
curr = next, next = next->next)
{
- if (item->priority < next->priority)
+ if (pq_64bit_gt(&(next->priority), &(item->priority)))
{
item->next = next;
@@ -133,7 +136,7 @@ pqueue_insert(pqueue_s *pq, pitem *item)
return item;
}
/* duplicates not allowed */
- if (item->priority == next->priority)
+ if (pq_64bit_eq(&(item->priority), &(next->priority)))
return NULL;
}
@@ -161,7 +164,7 @@ pqueue_pop(pqueue_s *pq)
}
pitem *
-pqueue_find(pqueue_s *pq, BN_ULLONG priority)
+pqueue_find(pqueue_s *pq, PQ_64BIT priority)
{
pitem *next, *prev = NULL;
pitem *found = NULL;
@@ -172,7 +175,7 @@ pqueue_find(pqueue_s *pq, BN_ULLONG priority)
for ( next = pq->items; next->next != NULL;
prev = next, next = next->next)
{
- if ( next->priority == priority)
+ if ( pq_64bit_eq(&(next->priority), &priority))
{
found = next;
break;
@@ -180,7 +183,7 @@ pqueue_find(pqueue_s *pq, BN_ULLONG priority)
}
/* check the one last node */
- if ( next->priority == priority)
+ if ( pq_64bit_eq(&(next->priority), &priority))
found = next;
if ( ! found)
@@ -196,6 +199,7 @@ pqueue_find(pqueue_s *pq, BN_ULLONG priority)
return found;
}
+#if !(defined(OPENSSL_SYS_VMS) || defined(VMS_TEST))
void
pqueue_print(pqueue_s *pq)
{
@@ -207,6 +211,7 @@ pqueue_print(pqueue_s *pq)
item = item->next;
}
}
+#endif
pitem *
pqueue_iterator(pqueue_s *pq)