diff --git a/src/TimingData.cpp b/src/TimingData.cpp index 0c8fbd69c5..8c3961c0ca 100644 --- a/src/TimingData.cpp +++ b/src/TimingData.cpp @@ -237,15 +237,19 @@ void TimingData::SetTickcountAtRow( int iRow, int iTicks ) { LOG->Trace( "TimingData::SetTickcountAtRow( '%i' , '%i' )", iRow, iTicks ); - unsigned i; + unsigned i = 0; vector &ticks = this->allTimingSegments[SEGMENT_TICKCOUNT]; for( i=0; iGetRow() >= iRow ) break; + // this thing causes an invalid parameter crash TickcountSegment *ts = static_cast(ticks[i]); + LOG->Trace( "Done with that thing again" ); + if( i == ticks.size() || ts->GetRow() != iRow ) { + LOG->Trace( "New TickSegment" ); // No TickcountSegment here. Make a new segment if required. if (i == 0 || static_cast(ticks[i-1])->GetTicks() != iTicks ) @@ -253,12 +257,15 @@ void TimingData::SetTickcountAtRow( int iRow, int iTicks ) } else // TickcountSegment being modified is m_TickcountSegments[i] { + LOG->Trace( "Editing TickSegment" ); if (i > 0 && static_cast(ticks[i-1])->GetTicks() == iTicks ) ticks.erase( ticks.begin()+i, ticks.begin()+i+1 ); else ts->SetTicks(iTicks); } + + LOG->Trace( "DONE" ); } void TimingData::SetComboAtRow( int iRow, int iCombo, int iMiss )