int fr_heap_insert(fr_heap_t *hp, void *data);
int fr_heap_extract(fr_heap_t *hp, void *data);
+void *fr_heap_pop(fr_heap_t *hp) CC_HINT(nonnull);
void *fr_heap_peek(fr_heap_t *hp);
void *fr_heap_peek_tail(fr_heap_t *hp);
size_t fr_heap_num_elements(fr_heap_t *hp);
return hp->p[0];
}
+void *fr_heap_pop(fr_heap_t *hp)
+{
+ void *data;
+
+ if (hp->num_elements == 0) return NULL;
+
+ data = hp->p[0];
+
+ (void) fr_heap_extract(hp, data);
+
+ return data;
+}
+
+
void *fr_heap_peek_tail(fr_heap_t *hp)
{
if (!hp || (hp->num_elements == 0)) return NULL;