diff options
-rw-r--r-- | sw/inc/densebplustree.cxx | 9 |
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 > |