]> git.donarmstrong.com Git - lilypond.git/commitdiff
Don't use virtual base classes without apparent reason
authorDavid Kastrup <dak@gnu.org>
Sat, 28 Apr 2012 13:23:08 +0000 (15:23 +0200)
committerDavid Kastrup <dak@gnu.org>
Fri, 4 May 2012 15:54:19 +0000 (17:54 +0200)
Virtual base classes are a tool for joining the representations of common
ancestors in a class lattice.  They come at a cost in computational,
conceptual, and usability complexity.

I can't see the purpose for the instances of virtual inheritance in
LilyPond (without multiple inheritance, there can't be much of an effect).

lily/include/engraver-group.hh
lily/include/global-context.hh
lily/include/performer-group.hh

index 52d931b523b6db31dc053246d9f349945506b617..5738b8a9f2c06ffe316a913f65d96bb97f9a1653 100644 (file)
@@ -23,7 +23,7 @@
 #include "engraver.hh"
 #include "translator-group.hh"
 
-class Engraver_group : public virtual Translator_group
+class Engraver_group : public Translator_group
 {
 protected:
   vector<Grob_info> announce_infos_;
index b49918591190d5d91ffd1715ac2d4d99a1742fa6..079162d27223bfac8295a577118135360d25b6e4 100644 (file)
@@ -23,7 +23,7 @@
 #include "context.hh"
 #include "pqueue.hh"
 
-class Global_context : public virtual Context
+class Global_context : public Context
 {
   PQueue<Moment> extra_mom_pq_;
   Output_def *output_def_;
index c2ee2ca1592cdc3275c29aba29f989842bd0f77b..4316d8bb73a8069cb41077b8b8507ed5c58afd60 100644 (file)
@@ -26,7 +26,7 @@
 
 typedef void (Performer:: *Performer_method) (void);
 
-class Performer_group : public virtual Translator_group
+class Performer_group : public Translator_group
 {
 public:
   VIRTUAL_COPY_CONSTRUCTOR (Translator_group, Performer_group);