aboutsummaryrefslogtreecommitdiff
path: root/src/include/lib/pairingheap.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/lib/pairingheap.h')
-rw-r--r--src/include/lib/pairingheap.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/include/lib/pairingheap.h b/src/include/lib/pairingheap.h
index e3e320fc434..eb1856a7c10 100644
--- a/src/include/lib/pairingheap.h
+++ b/src/include/lib/pairingheap.h
@@ -11,6 +11,11 @@
#ifndef PAIRINGHEAP_H
#define PAIRINGHEAP_H
+#include "lib/stringinfo.h"
+
+/* Enable if you need the pairingheap_dump() debug function */
+/* #define PAIRINGHEAP_DEBUG */
+
/*
* This represents an element stored in the heap. Embed this in a larger
* struct containing the actual data you're storing.
@@ -78,6 +83,12 @@ extern pairingheap_node *pairingheap_first(pairingheap *heap);
extern pairingheap_node *pairingheap_remove_first(pairingheap *heap);
extern void pairingheap_remove(pairingheap *heap, pairingheap_node *node);
+#ifdef PAIRINGHEAP_DEBUG
+extern char *pairingheap_dump(pairingheap *heap,
+ void (*dumpfunc) (pairingheap_node *node, StringInfo buf, void *opaque),
+ void *opaque);
+#endif
+
/* Resets the heap to be empty. */
#define pairingheap_reset(h) ((h)->ph_root = NULL)