X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fconstrained-breaking.cc;h=df08d5433ce6cefd38c944448a80c20f0350c8cf;hb=90e4d7057f3857da049dfda3d130017d4719bd6b;hp=ee8b28906c5f6d476e82b49cb3afeba92974b833;hpb=01df8ad908c92687d0c352e5ad5f067e52809423;p=lilypond.git diff --git a/lily/constrained-breaking.cc b/lily/constrained-breaking.cc index ee8b28906c..df08d5433c 100644 --- a/lily/constrained-breaking.cc +++ b/lily/constrained-breaking.cc @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 2006--2012 Joe Neeman + Copyright (C) 2006--2015 Joe Neeman LilyPond is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -365,10 +365,10 @@ Constrained_breaking::Constrained_breaking (Paper_score *ps, vector const static SCM min_permission (SCM perm1, SCM perm2) { - if (perm1 == ly_symbol2scm ("force")) + if (scm_is_eq (perm1, ly_symbol2scm ("force"))) return perm2; - if (perm1 == ly_symbol2scm ("allow") - && perm2 != ly_symbol2scm ("force")) + if (scm_is_eq (perm1, ly_symbol2scm ("allow")) + && !scm_is_eq (perm2, ly_symbol2scm ("force"))) return perm2; return SCM_EOL; } @@ -560,7 +560,7 @@ Line_details::Line_details (Prob *pb, Output_def *paper) if (scm_is_pair (footnotes)) for (SCM s = footnotes; scm_is_pair (s); s = scm_cdr (s)) { - Stencil *sten = unsmob_stencil (scm_caddar (s)); + Stencil *sten = unsmob (scm_caddar (s)); if (!sten) { programming_error ("expecting stencil, got empty pointer"); @@ -571,7 +571,9 @@ Line_details::Line_details (Prob *pb, Output_def *paper) last_column_ = 0; force_ = 0; - Interval stencil_extent = unsmob_stencil (pb->get_property ("stencil"))->extent (Y_AXIS); + Stencil *st = unsmob (pb->get_property ("stencil")); + Interval stencil_extent = st->is_empty (Y_AXIS) ? Interval (0, 0) + : st->extent (Y_AXIS); shape_ = Line_shape (stencil_extent, stencil_extent); // pretend it goes all the way across tallness_ = 0; bottom_padding_ = 0;