summaryrefslogtreecommitdiff
path: root/sw/inc/densebplustree.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sw/inc/densebplustree.cxx')
-rw-r--r--sw/inc/densebplustree.cxx9
1 files changed, 9 insertions, 0 deletions
diff --git a/sw/inc/densebplustree.cxx b/sw/inc/densebplustree.cxx
index a4469c2ddd11..b0b034c9eedf 100644
--- a/sw/inc/densebplustree.cxx
+++ b/sw/inc/densebplustree.cxx
@@ -308,6 +308,15 @@ void DenseBPlusTree< Key, Value, Order >::Remove( Key nPos, Key nNumber )
}
m_nCount -= nNumber;
+
+ // remove one level, if needed
+ if ( m_pRoot->m_nUsed == 1 )
+ {
+ DBPTreeNode< Key, Value, Order > *pToDelete = m_pRoot;
+ m_pRoot = m_pRoot->m_pChildren[0];
+ delete pToDelete;
+ --m_nDepth;
+ }
}
template < class Key, class Value, int Order >