]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/include/spanner.hh
Issue 5024: Rework the Preinit framework into something simpler
[lilypond.git] / lily / include / spanner.hh
index 72b295232dbaf19e97fb36e09749dd968574c2b7..a5ecd3dae92c451a259a45b2fa92f2702d63c651 100644 (file)
     is absolutely necessary for beams, since they have to adjust the
     length of stems of notes they encompass.
 */
-class Spanner : public Grob
+
+struct Preinit_Spanner
 {
   Drul_array<Item *> spanned_drul_;
+  SCM pure_property_cache_;
+  Preinit_Spanner ();
+};
+
+class Spanner : Preinit_Spanner, public Grob
+{
   vsize break_index_;
 
   DECLARE_CLASSNAME (Spanner);
@@ -52,7 +59,7 @@ public:
   DECLARE_SCHEME_CALLBACK (bounds_width, (SCM));
   DECLARE_SCHEME_CALLBACK (kill_zero_spanned_time, (SCM));
 
-  std::vector<Spanner *> broken_intos_;
+  vector<Spanner *> broken_intos_;
 
   vsize get_break_index () const;
   Spanner *broken_neighbor (Direction d) const;
@@ -82,8 +89,6 @@ public:
   void cache_pure_property (SCM sym, int start, int end, SCM value);
 
 protected:
-  SCM pure_property_cache_;
-
   void set_my_columns ();
   virtual Grob *clone () const;
   virtual void do_break_processing ();