https://codereview.appspot.com/12957047/diff/88001/lily/stencil-integral.cc File lily/stencil-integral.cc (right):
https://codereview.appspot.com/12957047/diff/88001/lily/stencil-integral.cc#newcode917 lily/stencil-integral.cc:917: } My best guess for the cause of the extra memory, showing in the `make check` profile output, is this loop written as tail recursion: stencil_traverser (PangoMatrix trans, SCM expr) { [...] else if (scm_car (expr) == ly_symbol2scm ("skyline-stencil")) { SCM skyline_stencil = scm_cadr (expr); return stencil_traverser (trans, skyline_stencil); } Maybe having 'skyline_stencil' as an automatic variable and also a function parameter, which would be optimized to a different automatic variable 'expr' in the same function, confuses the reference counting in Guile's garbage-collection. The current patches for our tracked issues 3255 and 3522 avoid creating SCM data types in the C code, and did not show extra memory in the profile output, so seem be safe enough. https://codereview.appspot.com/12957047/ _______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel