X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fglobal-context.cc;h=d1bd6a45475777ab6d946296247dbe0fa9b29e62;hb=1c4de51b613e7a820052e4341ee67070606dee46;hp=ddcec501ba4ec521d56176387d004405210fd96e;hpb=7bfc458c6aba8fe348b9fd5afafb64b8004441f7;p=lilypond.git diff --git a/lily/global-context.cc b/lily/global-context.cc index ddcec501ba..d1bd6a4547 100644 --- a/lily/global-context.cc +++ b/lily/global-context.cc @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1997--2006 Han-Wen Nienhuys + (c) 1997--2008 Han-Wen Nienhuys */ #include "global-context.hh" @@ -14,17 +14,13 @@ using namespace std; #include "context-def.hh" #include "dispatcher.hh" #include "international.hh" -#include "lilypond-key.hh" #include "music-iterator.hh" #include "music.hh" #include "output-def.hh" -#include "stream-event.hh" #include "warn.hh" -Global_context::Global_context (Output_def *o, Object_key *key) - : Context (new Lilypond_context_key (key, - Moment (0), - "Global", "", 0)) +Global_context::Global_context (Output_def *o) + : Context () { output_def_ = o; definition_ = find_context_def (o, ly_symbol2scm ("Global")); @@ -93,8 +89,6 @@ Global_context::prepare (SCM sev) else prev_mom_ = now_mom_; now_mom_ = *mom; - - clear_key_disambiguations (); } Moment @@ -140,6 +134,13 @@ Global_context::run_iterator_on_me (Music_iterator *iter) if (w.main_part_.is_infinity () || w > final_mom) break; + if (w == prev_mom_) + { + programming_error ("Moment is not increasing. Aborting interpretation."); + break ; + } + + if (first) { /* @@ -195,3 +196,9 @@ Global_context::get_default_interpreter () else return Context::get_default_interpreter (); } + +Global_context * +unsmob_global_context (SCM x) +{ + return dynamic_cast (unsmob_context (x)); +}