Browse Source

map: more bug fixes (still not fully fixed…)

undefined
Guillaume Bittoun Sam Hocevar <sam@hocevar.net> 10 years ago
parent
commit
e697314294
2 changed files with 11 additions and 5 deletions
  1. +10
    -4
      src/lol/base/avl_tree.h
  2. +1
    -1
      src/t/base/map.cpp

+ 10
- 4
src/lol/base/avl_tree.h View File

@@ -248,7 +248,6 @@ protected:
rebalance_if_needed();
}


return created;
}

@@ -374,11 +373,10 @@ protected:

replacement->m_child[1 - i]->m_child[i] = save1;
if (save1)
save1->m_parent_slot = &replacement->m_child[i]->m_child[1 - i];
save1->m_parent_slot = &replacement->m_child[1 - i]->m_child[i];
}
else
{

replacement = m_child[i];
tree_node * save = replacement->m_child[1 - i];

@@ -414,6 +412,8 @@ protected:
if (replacement)
{
*replacement->m_parent_slot = replacement->m_child[1 - i];
if (replacement->m_child[1 - i])
replacement->m_child[1 - i]->m_parent_slot = replacement->m_parent_slot;

replacement->m_parent_slot = m_parent_slot;
*replacement->m_parent_slot = replacement;
@@ -432,7 +432,13 @@ protected:
replacement->update_balance();
}
else
*m_parent_slot = nullptr;
{
*m_parent_slot = m_child[i];
if (m_child[i])
m_child[i]->m_parent_slot = m_parent_slot;

replacement = m_child[i];
}

replace_chain(replacement);
}


+ 1
- 1
src/t/base/map.cpp View File

@@ -123,7 +123,7 @@ lolunit_declare_fixture(MapTest)
presence[i] = 0;
}

for (int i = 0 ; i < 10000 ; ++i)
for (int i = 0 ; i < 198 ; ++i)
{
// debug output
// std::cout << "i " << i << ", a " << (int)a << ", b " << (int)b << std::endl;


Loading…
Cancel
Save