X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Ftuplet-iterator.cc;h=e04a0e9de8ee57932af9a3587acdc32043e0a865;hb=512b082a1c470d0315ae8c5f48da3b374a2de716;hp=f3c3c8285696ae7a30fd01b592cbea1de235a1f6;hpb=5edacf4c1908d0fe988d0ef9b3d6a9820a1e8734;p=lilypond.git diff --git a/lily/tuplet-iterator.cc b/lily/tuplet-iterator.cc index f3c3c82856..e04a0e9de8 100644 --- a/lily/tuplet-iterator.cc +++ b/lily/tuplet-iterator.cc @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 1998--2011 Han-Wen Nienhuys , + Copyright (C) 1998--2014 Han-Wen Nienhuys , Erik Sandberg LilyPond is free software: you can redistribute it and/or modify @@ -68,7 +68,7 @@ Tuplet_iterator::create_event (Direction d) Music *mus = get_music (); - Music *ev = unsmob_music (ev_scm); + Music *ev = Music::unsmob (ev_scm); ev->set_spot (*mus->origin ()); if (d == START) { @@ -126,12 +126,17 @@ Tuplet_iterator::process (Moment m) void Tuplet_iterator::construct_children () { - spanner_duration_ = music_get_length (); + if (Duration *d = Duration::unsmob (get_music ()->get_property ("duration"))) + spanner_duration_ = d->get_length (); + else + { + spanner_duration_ = music_get_length (); - Moment *mp - = unsmob_moment (get_outlet ()->get_property ("tupletSpannerDuration")); - if (mp) - spanner_duration_ = min (mp->main_part_, spanner_duration_); + Moment *mp + = Moment::unsmob (get_outlet ()->get_property ("tupletSpannerDuration")); + if (mp) + spanner_duration_ = min (mp->main_part_, spanner_duration_); + } Music_wrapper_iterator::construct_children ();