CVSROOT:        /cvsroot/lilypond
Module name:    lilypond
Branch:         
Changes by:     Han-Wen Nienhuys <[EMAIL PROTECTED]>    05/07/19 00:41:14

Modified files:
        .              : ChangeLog 
        lily           : dynamic-performer.cc grob-smob.cc item.cc 
                         note-head.cc spanner.cc system.cc 
        lily/include   : grob.hh item.hh spanner.hh system.hh 
                         translator.hh translator.icc 

Log message:
        * lily/include/translator.icc
        (IMPLEMENT_FETCH_PRECOMPUTABLE_METHODS): directly jump into
        Translator methods, without _static helper.
        
        * lily/grob-smob.cc (derived_mark): rename from
        do_derived_mark(). Don't return SCM.
        
        * lily/item.cc (handle_prebroken_dependencies): use a vector of 3
        booleans for break-visibility.
        
        * lily/include/translator.icc: new file.
        
        * lily/include/translator.hh (class Translator): rename
        process_acknowledged_grobs() to process_acknowledged() and move to
        Translator.
        
        * lily/note-head.cc (internal_print): only call
        glyph-name-procedure if  style != default. 3 %  speed increase 
(wtk2-fugue1).

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/ChangeLog.diff?tr1=1.3889&tr2=1.3890&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/dynamic-performer.cc.diff?tr1=1.43&tr2=1.44&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/grob-smob.cc.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/item.cc.diff?tr1=1.117&tr2=1.118&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/note-head.cc.diff?tr1=1.144&tr2=1.145&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/spanner.cc.diff?tr1=1.134&tr2=1.135&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/system.cc.diff?tr1=1.109&tr2=1.110&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/include/grob.hh.diff?tr1=1.60&tr2=1.61&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/include/item.hh.diff?tr1=1.57&tr2=1.58&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/include/spanner.hh.diff?tr1=1.75&tr2=1.76&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/include/system.hh.diff?tr1=1.20&tr2=1.21&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/include/translator.hh.diff?tr1=1.86&tr2=1.87&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/include/translator.icc.diff?tr1=1.1&tr2=1.2&r1=text&r2=text

Patches:
Index: lilypond/ChangeLog
diff -u lilypond/ChangeLog:1.3889 lilypond/ChangeLog:1.3890
--- lilypond/ChangeLog:1.3889   Tue Jul 19 00:08:00 2005
+++ lilypond/ChangeLog  Tue Jul 19 00:41:14 2005
@@ -1,5 +1,12 @@
 2005-07-19  Han-Wen Nienhuys  <[EMAIL PROTECTED]>
 
+       * lily/include/translator.icc
+       (IMPLEMENT_FETCH_PRECOMPUTABLE_METHODS): directly jump into
+       Translator methods, without _static helper.
+ 
+       * lily/grob-smob.cc (derived_mark): rename from
+       do_derived_mark(). Don't return SCM.
+
        * scm/define-context-properties.scm
        (all-internal-translation-properties): remove tweakCount/tweakRank.
 
Index: lilypond/lily/dynamic-performer.cc
diff -u lilypond/lily/dynamic-performer.cc:1.43 
lilypond/lily/dynamic-performer.cc:1.44
--- lilypond/lily/dynamic-performer.cc:1.43     Mon Jul 18 23:37:24 2005
+++ lilypond/lily/dynamic-performer.cc  Tue Jul 19 00:41:14 2005
@@ -10,6 +10,8 @@
 
 #include "audio-item.hh"
 #include "music.hh"
+#include "translator.icc"
+
 
 /*
   TODO:
@@ -23,25 +25,25 @@
 public:
   TRANSLATOR_DECLARATIONS (Dynamic_performer);
 protected:
-  virtual bool try_music (Music *req);
+  virtual bool try_music (Music *event);
   PRECOMPUTED_VIRTUAL void stop_translation_timestep ();
   virtual void create_audio_elements ();
 
 private:
-  Music *script_req_;
+  Music *script_event_;
   Audio_dynamic *audio_;
 };
 
 Dynamic_performer::Dynamic_performer ()
 {
-  script_req_ = 0;
+  script_event_ = 0;
   audio_ = 0;
 }
 
 void
 Dynamic_performer::create_audio_elements ()
 {
-  if (script_req_)
+  if (script_event_)
     {
       SCM proc = get_property ("dynamicAbsoluteVolumeFunction");
 
@@ -49,7 +51,7 @@
       if (ly_is_procedure (proc))
        {
          // urg
-         svolume = scm_call_1 (proc, script_req_->get_property ("text"));
+         svolume = scm_call_1 (proc, script_event_->get_property ("text"));
        }
 
       Real volume = robust_scm2double (svolume, 0.5);
@@ -95,9 +97,9 @@
        }
 
       audio_ = new Audio_dynamic (volume);
-      Audio_element_info info (audio_, script_req_);
+      Audio_element_info info (audio_, script_event_);
       announce_element (info);
-      script_req_ = 0;
+      script_event_ = 0;
     }
 }
 
@@ -114,18 +116,16 @@
 bool
 Dynamic_performer::try_music (Music *r)
 {
-  if (!script_req_)
+  if (!script_event_)
     {
       if (r->is_mus_type ("absolute-dynamic-event")) // fixme.
        {
-         script_req_ = r;
+         script_event_ = r;
          return true;
        }
     }
   return false;
 }
-
-#include "translator.icc"
 
 ADD_TRANSLATOR (Dynamic_performer,
                /*descr*/                "",
Index: lilypond/lily/grob-smob.cc
diff -u lilypond/lily/grob-smob.cc:1.1 lilypond/lily/grob-smob.cc:1.2
--- lilypond/lily/grob-smob.cc:1.1      Sat Jul 16 13:25:52 2005
+++ lilypond/lily/grob-smob.cc  Tue Jul 19 00:41:14 2005
@@ -16,6 +16,7 @@
 
 IMPLEMENT_SMOBS (Grob);
 IMPLEMENT_DEFAULT_EQUAL_P (Grob);
+IMPLEMENT_TYPE_P (Grob, "ly:grob?");
 
 SCM
 Grob::mark_smob (SCM ses)
@@ -45,7 +46,7 @@
   if (s->pscore_)
     scm_gc_mark (s->pscore_->self_scm ());
 
-  s->do_derived_mark ();
+  s->derived_mark ();
   scm_gc_mark (s->object_alist_);
   scm_gc_mark (s->interfaces_);
 
@@ -65,11 +66,7 @@
   return 1;
 }
 
-SCM
-Grob::do_derived_mark () const
+void
+Grob::derived_mark () const
 {
-  return SCM_EOL;
 }
-
-IMPLEMENT_TYPE_P (Grob, "ly:grob?");
-
Index: lilypond/lily/include/grob.hh
diff -u lilypond/lily/include/grob.hh:1.60 lilypond/lily/include/grob.hh:1.61
--- lilypond/lily/include/grob.hh:1.60  Sat Jul 16 12:23:33 2005
+++ lilypond/lily/include/grob.hh       Tue Jul 19 00:41:14 2005
@@ -100,7 +100,7 @@
   virtual void do_break_processing ();
   virtual Grob *find_broken_piece (System *) const;
   virtual void discretionary_processing ();
-  virtual SCM do_derived_mark () const;
+  virtual void derived_mark () const;
 
   Stencil *get_stencil () const;
   SCM get_uncached_stencil () const;
Index: lilypond/lily/include/item.hh
diff -u lilypond/lily/include/item.hh:1.57 lilypond/lily/include/item.hh:1.58
--- lilypond/lily/include/item.hh:1.57  Thu Mar 10 14:36:12 2005
+++ lilypond/lily/include/item.hh       Tue Jul 19 00:41:14 2005
@@ -41,7 +41,7 @@
 protected:
   virtual void discretionary_processing ();
   void copy_breakable_items ();
-  virtual SCM do_derived_mark () const;
+  virtual void derived_mark () const;
 };
 
 #endif
Index: lilypond/lily/include/spanner.hh
diff -u lilypond/lily/include/spanner.hh:1.75 
lilypond/lily/include/spanner.hh:1.76
--- lilypond/lily/include/spanner.hh:1.75       Sat Jul 16 12:23:33 2005
+++ lilypond/lily/include/spanner.hh    Tue Jul 19 00:41:14 2005
@@ -56,7 +56,7 @@
 
   static int compare (Spanner *const &, Spanner *const &);
   virtual Grob *find_broken_piece (System *) const;
-  virtual SCM do_derived_mark () const;
+  virtual void derived_mark () const;
   static bool has_interface (Grob *);
   virtual System *get_system () const;
 
Index: lilypond/lily/include/system.hh
diff -u lilypond/lily/include/system.hh:1.20 
lilypond/lily/include/system.hh:1.21
--- lilypond/lily/include/system.hh:1.20        Sat Jul 16 12:23:33 2005
+++ lilypond/lily/include/system.hh     Tue Jul 19 00:41:14 2005
@@ -45,7 +45,7 @@
   void pre_processing ();
 
 protected:
-  virtual SCM do_derived_mark () const;
+  virtual void derived_mark () const;
   virtual Grob *clone (int count) const;
 };
 
Index: lilypond/lily/include/translator.hh
diff -u lilypond/lily/include/translator.hh:1.86 
lilypond/lily/include/translator.hh:1.87
--- lilypond/lily/include/translator.hh:1.86    Mon Jul 18 23:37:26 2005
+++ lilypond/lily/include/translator.hh Tue Jul 19 00:41:14 2005
@@ -20,13 +20,8 @@
 
 typedef void (*Translator_void_method_ptr)(Translator*);
 
-#define DECLARE_STATIC_METHOD(x) static void x ## _static (Translator*)
 #define TRANSLATOR_DECLARATIONS(NAME)                  \
   public:                                              \
-    DECLARE_STATIC_METHOD(start_translation_timestep); \
-    DECLARE_STATIC_METHOD(stop_translation_timestep);  \
-    DECLARE_STATIC_METHOD(process_music);              \
-    DECLARE_STATIC_METHOD(process_acknowledged);       \
   NAME ();                                             \
   VIRTUAL_COPY_CONSTRUCTOR (Translator, NAME);         \
   static SCM static_description_;                      \
Index: lilypond/lily/include/translator.icc
diff -u lilypond/lily/include/translator.icc:1.1 
lilypond/lily/include/translator.icc:1.2
--- lilypond/lily/include/translator.icc:1.1    Mon Jul 18 23:37:26 2005
+++ lilypond/lily/include/translator.icc        Tue Jul 19 00:41:14 2005
@@ -29,7 +29,6 @@
   ADD_GLOBAL_CTOR (_ ## T ## _adder);
 
 #define ADD_TRANSLATOR(classname, desc, grobs, accepted, acked, read, write) \
-  DEFINE_STATIC_METHODS(classname);\
   IMPLEMENT_FETCH_PRECOMPUTABLE_METHODS(classname); \
   ADD_THIS_TRANSLATOR (classname);                                     \
   SCM                                                                  \
@@ -59,25 +58,6 @@
     return static_properties;                                          \
   }
 
-
-/*
-  FIXME: should be able to cast statically to (T*) -iow.- remove
-  Translator as a virtual base class.
- */
-#define DEFINE_STATIC_METHOD(T, x) \
-void \
-T::x ## _static (Translator* tr) \
-{ \
-  T * t_ptr = (T*) (tr);       \
-  t_ptr->x ();\
-}
-
-#define DEFINE_STATIC_METHODS(T) \
-  DEFINE_STATIC_METHOD(T,start_translation_timestep)\
-  DEFINE_STATIC_METHOD(T,stop_translation_timestep)\
-  DEFINE_STATIC_METHOD(T,process_music)\
-  DEFINE_STATIC_METHOD(T,process_acknowledged)
-
 #define IMPLEMENT_FETCH_PRECOMPUTABLE_METHODS(T) \
 void \
 T::fetch_precomputable_methods (Translator_void_method_ptr ptrs[])\
@@ -86,22 +66,22 @@
     ((Translator_void_method_ptr) &T::start_translation_timestep == \
      (Translator_void_method_ptr) &Translator::start_translation_timestep)     
\
     ? 0                                                                        
\
-    : &T::start_translation_timestep_static;                           \
+    : (Translator_void_method_ptr) &T::start_translation_timestep;     \
                                                                        \
   ptrs[STOP_TRANSLATION_TIMESTEP] =                                    \
     ((Translator_void_method_ptr) &T::stop_translation_timestep == 
(Translator_void_method_ptr) &Translator::stop_translation_timestep) \
     ? 0                                                                        
\
-    : &T::stop_translation_timestep_static;                            \
+    : (Translator_void_method_ptr) &T::stop_translation_timestep;      \
                                                                        \
   ptrs[PROCESS_MUSIC] =                                                        
\
     ((Translator_void_method_ptr) &T::process_music == 
(Translator_void_method_ptr) &Translator::process_music)                        
\
     ? 0                                                                        
\
-    : &T::process_music_static;                                                
\
+    : (Translator_void_method_ptr) &T::process_music;          \
                                                                        \
   ptrs[PROCESS_ACKNOWLEDGED] =                                         \
     ((Translator_void_method_ptr) &T::process_acknowledged == 
(Translator_void_method_ptr) &Translator::process_acknowledged)  \
     ? 0                                                                        
\
-    : &T::process_acknowledged_static;                                         
\
+    : (Translator_void_method_ptr) &T::process_acknowledged;           \
 }
 
 
Index: lilypond/lily/item.cc
diff -u lilypond/lily/item.cc:1.117 lilypond/lily/item.cc:1.118
--- lilypond/lily/item.cc:1.117 Tue Jul 19 00:04:11 2005
+++ lilypond/lily/item.cc       Tue Jul 19 00:41:14 2005
@@ -159,14 +159,13 @@
     }
 }
 
-SCM
-Item::do_derived_mark () const
+void
+Item::derived_mark () const
 {
   if (broken_to_drul_[LEFT])
     scm_gc_mark (broken_to_drul_[LEFT]->self_scm ());
   if (broken_to_drul_[RIGHT])
     scm_gc_mark (broken_to_drul_[RIGHT]->self_scm ());
-  return SCM_EOL;
 }
 
 Item *
Index: lilypond/lily/note-head.cc
diff -u lilypond/lily/note-head.cc:1.144 lilypond/lily/note-head.cc:1.145
--- lilypond/lily/note-head.cc:1.144    Mon Jul 18 23:37:25 2005
+++ lilypond/lily/note-head.cc  Tue Jul 19 00:41:14 2005
@@ -48,23 +48,18 @@
   
   Font_metric *fm = Font_interface::get_default_font (me);
 
-  Direction stem_dir = CENTER;
-  if (Grob *stem = unsmob_grob (me->get_object ("stem")))
-    {
-      stem_dir = get_grob_direction (stem);
-      if (stem_dir == CENTER)
-       programming_error ("must have stem dir for note head");
-    }
+  String idx = "noteheads.s" + suffix;
 
-  Stencil out;
-
-  String prefix = "noteheads.";
-  String idx
-    = prefix + ((stem_dir == UP) ? "u" : "d") + suffix;
-  out = fm->find_by_name (idx);
+  Stencil out = fm->find_by_name (idx);
   if (out.is_empty ())
     {
-      idx = prefix + "s" + suffix;
+      String prefix = "noteheads.";
+      Grob *stem = unsmob_grob (me->get_object ("stem"));
+      Direction stem_dir = stem ? get_grob_direction (stem) : CENTER;
+      
+      if (stem_dir == CENTER)
+       programming_error ("must have stem dir for note head");
+      String idx = prefix + ((stem_dir == UP) ? "u" : "d") + suffix;
       out = fm->find_by_name (idx);
     }
 
Index: lilypond/lily/spanner.cc
diff -u lilypond/lily/spanner.cc:1.134 lilypond/lily/spanner.cc:1.135
--- lilypond/lily/spanner.cc:1.134      Mon Jul 18 23:37:25 2005
+++ lilypond/lily/spanner.cc    Tue Jul 19 00:41:14 2005
@@ -288,16 +288,9 @@
   return 0.0;
 }
 
-SCM
-Spanner::do_derived_mark () const
+void
+Spanner::derived_mark () const
 {
-#if 0
-  /*
-    We'd be fucked if this is called before spanned_drul_[] is inited.  */
-  if (status_ == ORPHAN)
-    return SCM_EOL;
-#endif
-  
   Direction d = LEFT;
   do
     if (spanned_drul_[d])
@@ -307,8 +300,6 @@
 
   for (int i = broken_intos_.size (); i--;)
     scm_gc_mark (broken_intos_[i]->self_scm ());
-
-  return SCM_EOL;
 }
 
 /*
Index: lilypond/lily/system.cc
diff -u lilypond/lily/system.cc:1.109 lilypond/lily/system.cc:1.110
--- lilypond/lily/system.cc:1.109       Tue Jul 19 00:04:11 2005
+++ lilypond/lily/system.cc     Tue Jul 19 00:41:14 2005
@@ -87,8 +87,8 @@
     }
 }
 
-SCM
-System::do_derived_mark () const
+void
+System::derived_mark () const
 {
   if (!all_elements_->is_empty ())
     {
@@ -100,7 +100,7 @@
          ptr ++;
        }
     }
-  return Spanner::do_derived_mark ();
+  Spanner::derived_mark ();
 }
 
 static void


_______________________________________________
Lilypond-cvs mailing list
Lilypond-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-cvs

Reply via email to