Embarrassingly, commit
2ea3798f3473a7dd02b85ac311aa9b8de4938c3c only
implemented the requisite fix in one place. This replicates the code
for avoiding duplicate error messages at the second call place of
ly:parsed-undead-list! in lily.scm.
(ly:set-option 'debug-gc-assert-parsed-dead #t)
(gc)
(ly:set-option 'debug-gc-assert-parsed-dead #f)
- (for-each
- (lambda (x)
- (ly:programming-error "Parsed object should be dead: ~a" x))
- (ly:parsed-undead-list!))
+ (for-each
+ (lambda (x)
+ (if (not (hashq-ref gc-zombies x))
+ (begin
+ (ly:programming-error "Parsed object should be dead: ~a" x)
+ (hashq-set! gc-zombies x #t))))
+ (ly:parsed-undead-list!))
(if (ly:get-option 'debug-gc)
(dump-gc-protects)
(ly:reset-all-fonts))