Menu

#4899 Reorganize listener/acknowledger initialization

Verified
Maintainability
2016-07-17
2016-06-18
No

Reorganize listener/acknowledger initialization

This reverts most of the changes of issue 4885 in order to arrive at
listeners/acknowledgers that can be kept private or protected
according to the actual use cases in engravers and other translators.
It also streamlines some of the other code. Contains the following
commits in reverse order (all separately tested to compile):

Remove {Translator,Engraver}::ack_find_base

The indirection and complication added by it does not really
help in any manner.

Remove Translator::method-find_base

It's basically a trivial replacement and confuses more than it helps.

Listeners should not be virtual

Gregorian_ligature_engraver::listen_pes_or_flexa and
Ligature_engraver::listen_pes_or_flexa were accidentally
declared virtual, but their registration already caters
for what amounts to virtual overrides in effect.

Revert "Issue 4885/2: Let ADD_ACKNOWLEDGER state actual classes"

This reverts commit 7c36dbb1834c7c68e4b94777241de3ea02971aca.

Revert "Issue 4885/3: Remove ack_finder/ack_find_base"

This reverts commit b9040afd1dcfbee6b45bc3d54850ff50d51c8ee9.

Let method_finder also find listeners

This allows using inherited listeners directly like with
acknowledgers and translator methods.

http://codereview.appspot.com/301980043

Discussion

  • Anonymous

    Anonymous - 2016-06-18
    • Description has changed:

    Diff:

    
    
    • Needs: -->
    • Patch: new --> review
     
  • Anonymous

    Anonymous - 2016-06-18

    Passes make, make check and a full make doc.

     
  • David Kastrup

    David Kastrup - 2016-06-20
    • Type: Enhancement --> Maintainability
     
  • Anonymous

    Anonymous - 2016-06-21
    • Patch: review --> countdown
     
  • Anonymous

    Anonymous - 2016-06-21

    Patch on countdown for June 24th.

     
  • David Kastrup

    David Kastrup - 2016-06-23

    I am going to push this a day early, in a few hours. Reason is that issue 4903 (which has a hard time getting tested at all) actually overlaps with this one and consequently needs non-trivial rebasing. And I have patches waiting to be rebased on that as well, and I try working on issue 1375 based on the code state of that, and stuff is getting out of hand enough that it causes me to deadlock and get nothing done.

    So I'll be flushing some queues and we'll need to deal with any fallout afterwards rather than through proper review. Sorry for that. I still have a few issues on regular schedule not interfering with ongoing work.

     
  • David Kastrup

    David Kastrup - 2016-06-23
    • labels: --> Fixed_2_19_45
    • status: Started --> Fixed
    • Patch: countdown -->
     
  • David Kastrup

    David Kastrup - 2016-06-23

    Pushed to staging as
    commit 5c7507115ca03b8f2f2b46e34d670ed50074b00d
    Author: David Kastrup dak@gnu.org
    Date: Sat Jun 18 10:49:06 2016 +0200

    Issue 4899/6: Remove {Translator,Engraver}::ack_find_base
    
    The indirection and complication added by it does not really
    help in any manner.
    

    commit 1906a2283e10713232141886afd11dad96efcee1
    Author: David Kastrup dak@gnu.org
    Date: Sat Jun 18 10:23:30 2016 +0200

    Issue 4899/5: Remove Translator::method_find_base
    
    It's basically a trivial replacement and confuses more than it helps.
    

    commit 220f62ed61861265a5b734052806de2d1c656335
    Author: David Kastrup dak@gnu.org
    Date: Sat Jun 18 10:13:10 2016 +0200

    Issue 4899/4: Listeners should not be virtual
    
    Gregorian_ligature_engraver::listen_pes_or_flexa and
    Ligature_engraver::listen_pes_or_flexa were accidentally
    declared virtual, but their registration already caters
    for what amounts to virtual overrides in effect.
    

    commit ffc7faa048d5c54c1c38024b80212f5f789a4361
    Author: David Kastrup dak@gnu.org
    Date: Fri Jun 17 16:23:09 2016 +0200

    Issue 4899/3: Revert "Issue 4885/2: Let ADD_ACKNOWLEDGER state actual classes"
    
    This reverts commit 7c36dbb1834c7c68e4b94777241de3ea02971aca.
    

    commit 60ceca32eb997a6ce3a974527b39a098d1ebb82e
    Author: David Kastrup dak@gnu.org
    Date: Fri Jun 17 16:13:55 2016 +0200

    Issue 4899/2: Revert "Issue 4885/3: Remove ack_finder/ack_find_base"
    
    This reverts commit b9040afd1dcfbee6b45bc3d54850ff50d51c8ee9.
    

    commit f7013d65b51f1372dc31973b78bbe04f505ea569
    Author: David Kastrup dak@gnu.org
    Date: Sat Jun 18 10:20:43 2016 +0200

    Issue 4899/1: Let method_finder also find listeners
    
    This allows using inherited listeners directly like with
    acknowledgers and translator methods.
    
     
  • Federico Bruni

    Federico Bruni - 2016-07-17
    • status: Fixed --> Verified