[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: disconnect coverage
From: |
Erik Sandberg |
Subject: |
Re: disconnect coverage |
Date: |
Thu, 4 Jan 2007 19:52:45 +0100 |
User-agent: |
KMail/1.9.5 |
On Thursday 04 January 2007 14:43, Han-Wen Nienhuys wrote:
> Hi Erik,
>
> browsing the coverage reports, I see
>
> **
> uncovered chunk in out-cov/score-performer.cc.gcov
> #####: 77:Score_performer::disconnect_from_context ()
> -: 78:{
> #####: 79: Dispatcher *d = context ()->get_global_context
> ()->event_source (); #####: 80: d->remove_listener (GET_LISTENER
> (one_time_step), ly_symbol2scm ("OneTimeStep")); #####: 81:
> d->remove_listener (GET_LISTENER (prepare), ly_symbol2scm ("Prepare"));
> #####: 82: d->remove_listener (GET_LISTENER (finish), ly_symbol2scm
> ("Finish")); -: 83:
> #####: 84: Performer_group::disconnect_from_context ();
> #####: 85:}
> uncovered chunk in out-cov/score-engraver.cc.gcov
> #####: 103:Score_engraver::disconnect_from_context ()
> -: 104:{
> #####: 105: Dispatcher *d = context ()->get_global_context
> ()->event_source (); #####: 106: d->remove_listener (GET_LISTENER
> (one_time_step), ly_symbol2scm ("OneTimeStep")); #####: 107:
> d->remove_listener (GET_LISTENER (prepare), ly_symbol2scm ("Prepare"));
> #####: 108: d->remove_listener (GET_LISTENER (finish), ly_symbol2scm
> ("Finish")); -: 109:
> #####: 110: Engraver_group::disconnect_from_context ();
> #####: 111:}
> **
>
> it seems this is never executed. Can you check this out, and either
> remove the code, or fix it?
They are there for completeness. I think the reason they are never called, is
that score contexts aren't explicitly destroyed. I think this is because
contexts below Score are destroyed during iteration, while scores themselves
aren't (probably because they contain references to the typeset score, which
is needed later). Scores and score-translators are therefore only removed by
the GC, so the destructors are never executed.
I don't think this is a problem, and if we remove the code, we may create
leaks if score translators can be connected/disconnected some time in the
future.
--
Erik