I did a little cvs detective work and determined the following:
April 7: I modified horizontal scrolling (revision 1.39 of Project.cpp)
I do not remember seeing the scroll-crash bug at that time. Looking at
the modifications I made, I do not see how that could have caused the
April 12: I noticed the scroll-past-end crash and (at the time) thought
I had caused it with my previous changes. I checked in a fix that
guarded against it happening for single tracks (revision 1.43 of
Project.cpp). But, this did not fix the crash when
you have multiple tracks and one is shorter than the others.
I surmise that the crash was introduced in this time period (sure, its
closer to Inspector Cluseau than Hercule Poirot, but oh well). What
happened in between? Here are a few possible culprits, which I don't
know enough about to rule out:
TrackPanel.cpp 1.55--removed old ruler code
1.56--Change mEnvelope to pointer
1.57--Stop timer in destructor
WaveTrack.cpp 1.21--Update Summaries
TrackArtist.cpp 1.17--Added RMS display
1.18--Vertical track rulers use ruler class
There may be others I haven't listed here, but I think the most
'suspicious' change is the RMS display. I could imagine there might be a
divide-by-zero error or something, because RMS of a blank track could
require finding the average of zero samples. I don't know why that would
cause a seg fault, though.
From: Matt Brubeck <mbrubeck@cs...> - 2002-04-26 19:32:25
On Apr 26, Shane Mueller wrote:
> April 7: I modified horizontal scrolling (revision 1.39 of Project.cpp)
> I do not remember seeing the scroll-crash bug at that time. [...]
> April 12: I noticed the scroll-past-end crash [...]
> I surmise that the crash was introduced in this time period.
Good work! I've just checked out a cvs tree from the April 7th, and I can
confirm that it wasn't crashing at that time. I'll try to find the exact set
of changes that created the bug.