https://codereview.appspot.com/135240043/diff/20001/lily/include/smobs.hh File lily/include/smobs.hh (right):
https://codereview.appspot.com/135240043/diff/20001/lily/include/smobs.hh#newcode93 lily/include/smobs.hh:93: list = scm_cons (p->unprotect (), list); I'm ignorant of how Guile collects garbage, but hopefully it wouldn't preempt this after p is unprotected and before scm_cons appropriates it. https://codereview.appspot.com/135240043/diff/20001/lily/include/smobs.hh#newcode158 lily/include/smobs.hh:158: // constructor, in constrast, may not be called at all in classes contrast https://codereview.appspot.com/135240043/diff/20001/lily/include/smobs.hh#newcode225 lily/include/smobs.hh:225: return is_smob (s) ? SCM_BOOL_T : SCM_BOOL_F; Wouldn't something like the following be useful here and elsewhere? (For example, I found ly_grob_pq_less_p right away, and I wasn't even trying hard.) SCM to_SCM_BOOL(bool b) { return b ? SCM_BOOL_T : SCM_BOOL_F; } https://codereview.appspot.com/135240043/diff/20001/lily/include/smobs.hh#newcode248 lily/include/smobs.hh:248: class Smob: public Smob_base<Super> { Are the compiler-generated copy constructor and assignment operator going to do the right thing? If so, a comment to that effect would assure us that you considered them. If not, they should either be implemented (if useful) or declared but not defined (if not useful). https://codereview.appspot.com/135240043/ _______________________________________________ lilypond-devel mailing list [email protected] https://lists.gnu.org/mailman/listinfo/lilypond-devel
