|
From: | lilypond |
Subject: | Re: Issue 1475 in lilypond: crash with many markups between scores |
Date: | Thu, 20 Jan 2011 18:06:31 +0000 |
Comment #15 on issue 1475 by address@hidden: crash with many markups between scores
http://code.google.com/p/lilypond/issues/detail?id=1475Sorry, I've been traveling and haven't had much internet access lately. I have a patch and I'm running the regtests now. This patch also improves Carl's example in comment #5: now all the scores put 8 bars on one line except for score 10, which puts 4 bars on two lines each.
By the way, the excessive memory usage was in Page_breaking::line_divisions_rec. This function theoretically uses memory which is exponential in the number of systems, but it should never be an issue because of the way the function is used; the lower_bound and upper_bound arguments keep memory usage down to something linear in the number of systems. The problem was that I changed the way that systems were counted internally in the page breaker (before, system_count() counted systems, titles and markups, but I changed it to only count systems). But I didn't make the change in all of the places where it was required, so the system_count argument to line_divisions_rec got out of sync with the lower_bound and upper_bound arguments, causing exponential memory usage (but only when there are enough titles and markups to make things sufficiently out of sync).
[Prev in Thread] | Current Thread | [Next in Thread] |