On 14 March 2011 23:26, [email protected] <[email protected]> wrote:
> backtrace from valgrind, also after balloon.ly
[snip]
Interesting. I was on the right track, but it appears to be deleting
something which has already been deleted:
Audio_staff*
Staff_performer::new_audio_staff (string voice)
{
Audio_staff* audio_staff = new Audio_staff;
string track_name = context ()->id_string () + ":" + voice;
if (track_name != ":")
{
name_ = new Audio_text (Audio_text::TRACK_NAME, context ()->id_string ()
+ ":" + voice);
audio_staff->add_audio_item (name_);
}
announce_element (Audio_element_info (audio_staff, 0));
announce_element (Audio_element_info (name_, 0));
In baerenreiter-sarabande.ly, there's an unnamed voice (I'm not sure
where it is though :) which gets a track name of ":". Since the above
code doesn't create a new name_, it's announced as the previous
Audio_text. Thus there are two identical pointers added to
Performance::audio_elements_, the second of which junk_pointers ()
attempts to delete after it's already gone.
Cheers,
Neil
_______________________________________________
lilypond-devel mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/lilypond-devel