aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2016-11-21 23:12:07 +0100
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2016-11-22 18:15:21 +0100
commitdd6410b2b35a76de75622660cae9c1444b7a1880 (patch)
tree7cd2ceec58a4a8012fa86a18cb8c81146a8711ee
parent20fcf2feccbe2c48ee33cee73ed8bf9a6d4a06a2 (diff)
downloadsciteco-dd6410b2b35a76de75622660cae9c1444b7a1880.tar.gz
optimized QRegisterTable cleanup
* we can use root() instead of min() which is faster
-rw-r--r--src/goto.h2
-rw-r--r--src/help.h2
-rw-r--r--src/qregisters.cpp2
-rw-r--r--src/qregisters.h2
-rw-r--r--src/rbtree.h7
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,10 +80,15 @@ 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)
{
RB_INSERT(Tree, &head, entry);