[ardour-dev] weekly 1.0 progress report

Nick Murtagh nickm at go2.ie
Mon Nov 29 12:05:07 PST 2004


Paul Davis wrote:
> your analysis "should" be incorrect. the regions pointed to by the
> region list are not present in any playlist (they are copied by the
> session before being pointed to).

Hi Paul,

My analysis was indeed incorrect, but I figured out the problem.

When an AudioRegion is destroyed, it emits a GoingAway signal.

This is attached to Session::remove_region().

In ~Session, the AudioRegion objects in audio_regions are deleted using
an AudioRegionList::iterator. Each delete results in a call to 
Session::remove_region(), which attempts to modify audio_regions while
it is being iterated over!

This is easily fixed by making a copy of audio_regions to iterate over 
for the delete. Patch in mantis. Please commit!


Nick



More information about the Ardour-Dev mailing list