aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/rbtree.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/rbtree.h')
-rw-r--r--src/rbtree.h29
1 files changed, 10 insertions, 19 deletions
diff --git a/src/rbtree.h b/src/rbtree.h
index 76b2141..7730fc5 100644
--- a/src/rbtree.h
+++ b/src/rbtree.h
@@ -34,15 +34,15 @@ public:
public:
RB_ENTRY(RBEntry) nodes;
- inline RBEntry *
+ inline RBEntryType *
next(void)
{
- return RBTree::Tree_RB_NEXT(this);
+ return (RBEntryType *)RBTree::Tree_RB_NEXT(this);
}
- inline RBEntry *
+ inline RBEntryType *
prev(void)
{
- return RBTree::Tree_RB_PREV(this);
+ return (RBEntryType *)RBTree::Tree_RB_PREV(this);
}
};
@@ -66,10 +66,14 @@ public:
{
RB_INIT(&head);
}
- virtual
~RBTree()
{
- clear();
+ /*
+ * Keeping the clean up out of this wrapper class
+ * means we can avoid declaring EBEntry implementations
+ * virtual.
+ */
+ g_assert(min() == NULL);
}
inline RBEntryType *
@@ -108,17 +112,6 @@ public:
{
return (RBEntryType *)RB_MAX(Tree, &head);
}
-
- inline void
- clear(void)
- {
- RBEntryType *cur;
-
- while ((cur = min())) {
- remove(cur);
- delete cur;
- }
- }
};
typedef gint (*StringCmpFunc)(const gchar *str1, const gchar *str2);
@@ -138,8 +131,6 @@ public:
RBEntryStringT(gchar *_key) : key(_key) {}
- virtual ~RBEntryStringT() {}
-
inline gint
compare(RBEntryStringT &other)
{