|
From: | Ralph Little |
Subject: | Re: A quick Performer_group query |
Date: | Wed, 10 Oct 2007 10:12:26 -0700 |
User-agent: | Thunderbird 1.5.0.13 (X11/20070824) |
Han-Wen Nienhuys wrote:
2007/10/9, Ralph Little <address@hidden>:Hi, More strangeness. In Performer_group::do_announces(), there is this: ================================== while (1) { performer_each (get_simple_trans_list (), &Performer::create_audio_elements); if (!announce_infos_.size ()) break; acknowledge_audio_elements (); announce_infos_.clear (); }this looks fishy; better take a look at the one for grobs. The idea is that new objects may be created in response to acknowledged objects. Then these new objects have to be announced, etc.
Hi, In retrospect, I think it is "OK" in what it is trying to do.Looking at Engraver_group::do_announces, it is clearly copied originally from that.
However, no performer actually derives from Performer::create_audio_elements() which is a NOP, so it's a bit pointless. I was worried that it might be a performance hit on Lilypond if it was unnecessarily repeating calls where there was nothing left to do. It appears now that in practice it does exactly nothing anyway.
If create_audio_elements is not used, perhaps it could be dropped unless there is a structural need for it in circumstances that have yet not been encountered. I do not yet have a sufficient overall feel for how it fits in to give an authoritative view on this.
Regards, Ralph
[Prev in Thread] | Current Thread | [Next in Thread] |