Store proper children in edge-case code.

This commit is contained in:
Bartosz Taudul 2017-09-25 01:20:22 +02:00
parent d427e937d3
commit 192493a2c3

View File

@ -406,14 +406,14 @@ void View::InsertZone( Event* zone, Event* parent, Vector<Event*>& vec )
{
zone->parent = parent;
// here be dragons
// this code is not tested, as it's a fallback for edge cases, which haven't happened
if( zone->end == -1 )
{
// here be dragons
// this code is not tested, as it's a fallback for edge cases, which haven't happened
for( auto zit = it; zit != vec.end(); ++zit )
{
(*zit)->parent = zone;
zone->child.push_back( zone );
zone->child.push_back( *zit );
}
vec.erase( it, vec.end() );
vec.push_back( zone );
@ -424,7 +424,7 @@ void View::InsertZone( Event* zone, Event* parent, Vector<Event*>& vec )
for( auto zit = it; zit != eit; zit++ )
{
(*zit)->parent = zone;
zone->child.push_back( zone );
zone->child.push_back( *zit );
}
auto nit = vec.erase( it, eit );
vec.insert( nit, zone );