]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/include/global-context.hh
Issue 4997/7: Use Preinit for Global_context, protect output definition
[lilypond.git] / lily / include / global-context.hh
index e5dbc82deb06d0744d87e4920acb8a7317cddf23..fd6f1f92c010c578c03286da4f30e8e3b7951234 100644 (file)
 #include "context.hh"
 #include "pqueue.hh"
 
-class Global_context : public Context
+class Global_context : public Preinit<Global_context>, public Context
 {
   PQueue<Moment> extra_mom_pq_;
   Output_def *output_def_;
+  virtual void derived_mark () const;
 
   DECLARE_CLASSNAME (Global_context);
 
   friend class Output_def;
 public:
+  void pre_init ();
   Global_context (Output_def *);
   int get_moments_left () const;
   Moment sneaky_insert_extra_moment (Moment);
@@ -48,13 +50,6 @@ public:
   virtual Moment now_mom () const;
   virtual Context *get_default_interpreter (const string &context_id = "");
 
-  static Global_context *unsmob (SCM x) {
-    return dynamic_cast<Global_context *> (Context::unsmob (x));
-  }
-  static bool is_smob (SCM x) {
-    return Context::is_smob (x) && unsmob (x);
-  }
-
   Moment previous_moment () const;
 protected:
   Moment prev_mom_;