From dd6410b2b35a76de75622660cae9c1444b7a1880 Mon Sep 17 00:00:00 2001 From: Robin Haberkorn Date: Mon, 21 Nov 2016 23:12:07 +0100 Subject: optimized QRegisterTable cleanup * we can use root() instead of min() which is faster --- src/goto.h | 2 +- src/help.h | 2 +- src/qregisters.cpp | 2 +- src/qregisters.h | 2 +- src/rbtree.h | 7 ++++++- 5 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/goto.h b/src/goto.h index de4432d..44d1d29 100644 --- a/src/goto.h +++ b/src/goto.h @@ -93,7 +93,7 @@ public: { Label *cur; - while ((cur = (Label *)min())) + while ((cur = (Label *)root())) delete (Label *)RBTreeString::remove(cur); } diff --git a/src/help.h b/src/help.h index 85c2384..4af8f3b 100644 --- a/src/help.h +++ b/src/help.h @@ -52,7 +52,7 @@ public: { Topic *cur; - while ((cur = (Topic *)min())) + while ((cur = (Topic *)root())) delete (Topic *)remove(cur); } diff --git a/src/qregisters.cpp b/src/qregisters.cpp index 821cbc2..80675be 100644 --- a/src/qregisters.cpp +++ b/src/qregisters.cpp @@ -854,7 +854,7 @@ QRegisterTable::clear(void) { QRegister *cur; - while ((cur = (QRegister *)min())) { + while ((cur = (QRegister *)root())) { if (cur == QRegisters::current) throw Error("Currently edited Q-Register \"%s\" " "cannot be discarded", cur->name); diff --git a/src/qregisters.h b/src/qregisters.h index cb50b6f..4648149 100644 --- a/src/qregisters.h +++ b/src/qregisters.h @@ -309,7 +309,7 @@ public: { QRegister *cur; - while ((cur = (QRegister *)min())) + while ((cur = (QRegister *)root())) delete (QRegister *)remove(cur); } diff --git a/src/rbtree.h b/src/rbtree.h index db0d430..131ba81 100644 --- a/src/rbtree.h +++ b/src/rbtree.h @@ -80,9 +80,14 @@ public: * means we can avoid declaring EBEntry implementations * virtual. */ - g_assert(min() == NULL); + g_assert(root() == NULL); } + inline RBEntryType * + root(void) + { + return (RBEntryType *)RB_ROOT(&head); + } inline RBEntryType * insert(RBEntryType *entry) { -- cgit v1.2.3