X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fgrob-info.cc;h=ee79e4ec661aebbc5414d4794dc5b8c804385336;hb=47db9a3883d726ca53e2133a3b2298f78dd6a32e;hp=fb1f366b9e26b794b0a231c21ce92055522a4ff1;hpb=1c846b2c2348b4e0ca4a3c2e8fb267047ba2d203;p=lilypond.git diff --git a/lily/grob-info.cc b/lily/grob-info.cc index fb1f366b9e..ee79e4ec66 100644 --- a/lily/grob-info.cc +++ b/lily/grob-info.cc @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 1997--2011 Han-Wen Nienhuys + Copyright (C) 1997--2015 Han-Wen Nienhuys LilyPond is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -30,6 +30,7 @@ Grob_info::Grob_info (Translator *t, Grob *g) origin_trans_ = t; grob_ = g; start_end_ = START; + rerouting_daddy_context_ = 0; /* assert here, because this is easier to debug. @@ -42,20 +43,21 @@ Grob_info::Grob_info () grob_ = 0; start_end_ = START; origin_trans_ = 0; + rerouting_daddy_context_ = 0; } Stream_event * Grob_info::event_cause () const { SCM cause = grob_->get_property ("cause"); - return unsmob_stream_event (cause); + return Stream_event::unsmob (cause); } -vector +vector Grob_info::origin_contexts (Translator *end) const { Context *t = origin_trans_->context (); - vector r; + vector r; do { r.push_back (t); @@ -88,9 +90,15 @@ Stream_event * Grob_info::ultimate_event_cause () const { SCM cause = grob_->self_scm (); - while (unsmob_grob (cause)) + while (Grob::is_smob (cause)) { - cause = unsmob_grob (cause)->get_property ("cause"); + cause = Grob::unsmob (cause)->get_property ("cause"); } - return unsmob_stream_event (cause); + return Stream_event::unsmob (cause); +} + +bool +Grob_info::less (Grob_info i, Grob_info j) +{ + return Grob::less (i.grob (), j.grob ()); }