X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fprob.cc;h=7438de3dcb05fa6a1500db02cf3f672a07c8014e;hb=87eedcd59f4082cb0841528ad5bc82cb1d1191e3;hp=b6df86590fe157f4746b391a3dabe349579c78af;hpb=3d0c45c00d400d3430fc4c0beb41cf96ebd28889;p=lilypond.git diff --git a/lily/prob.cc b/lily/prob.cc index b6df86590f..7438de3dcb 100644 --- a/lily/prob.cc +++ b/lily/prob.cc @@ -3,12 +3,14 @@ source file of the GNU LilyPond music typesetter - (c) 2004--2006 Jan Nieuwenhuizen + (c) 2004--2007 Jan Nieuwenhuizen */ #include "prob.hh" #include "main.hh" #include "item.hh" +#include "input.hh" +#include "profile.hh" #include "ly-smobs.icc" @@ -41,12 +43,20 @@ Prob::equal_p (SCM sa, SCM sb) /* Compare mutable and immutable lists, element by element. */ for (i = 0; i < 2; i++) { - SCM aprop = props[0][i], bprop = props[1][i]; + SCM aprop = props[0][i]; + SCM bprop = props[1][i]; - for (; scm_is_pair (aprop) && scm_is_pair(bprop); aprop = scm_cdr (aprop), bprop = scm_cdr (bprop)) + for (; + scm_is_pair (aprop) && scm_is_pair(bprop); + aprop = scm_cdr (aprop), bprop = scm_cdr (bprop)) { + SCM aval = scm_cdar (aprop); + SCM bval = scm_cdar (bprop); if (scm_caar (aprop) != scm_caar (bprop) || - !to_boolean (scm_equal_p (scm_cdar (aprop), scm_cdar (bprop)))) + ( + !(unsmob_input (aval) && unsmob_input (bval)) + && + !to_boolean (scm_equal_p (aval, bval)))) return SCM_BOOL_F; } @@ -131,6 +141,11 @@ Prob::print_smob (SCM smob, SCM port, scm_print_state*) SCM Prob::internal_get_property (SCM sym) const { +#ifndef NDEBUG + if (profile_property_accesses) + note_property_access (&prob_property_lookup_table, sym); +#endif + /* TODO: type checking */