From: David Kastrup <dak@gnu.org>
Date: Wed, 29 Jul 2015 15:48:16 +0000 (+0200)
Subject: Issue 4529: Avoid "Parsed object should be dead" message from issue 4505
X-Git-Tag: release/2.19.25-1~27
X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=f04459b1ab1fc447c84799408d5488b61a8bb241;p=lilypond.git

Issue 4529: Avoid "Parsed object should be dead" message from issue 4505
---

diff --git a/scm/ly-syntax-constructors.scm b/scm/ly-syntax-constructors.scm
index c690413c88..f93ed3ff8c 100644
--- a/scm/ly-syntax-constructors.scm
+++ b/scm/ly-syntax-constructors.scm
@@ -246,14 +246,23 @@ into a @code{MultiMeasureTextEvent}."
                                 'grob-property-path (cdr path)))
                    context)))
 
+;; The signature here is slightly fishy since the "fallback return
+;; value" is not actually music but #f.  This used to be (void-music)
+;; but triggered "Parsed object should be dead" warnings for music
+;; objects outside of the current parser session/module.  The called
+;; functions always deliver music and are used from the parser in a
+;; manner where only the last argument is provided from outside the
+;; parser, and its predicate "scheme?" is always true.  So the
+;; fallback value will never get used and its improper type is no
+;; issue.
 (define-public property-override-function
   (ly:make-music-function
-   (list (cons ly:music? (void-music)) symbol? symbol-list? scheme?)
+   (list (cons ly:music? #f) symbol? symbol-list? scheme?)
    property-override))
 
 (define-public property-set-function
   (ly:make-music-function
-   (list (cons ly:music? (void-music)) symbol? symbol? scheme?)
+   (list (cons ly:music? #f) symbol? symbol? scheme?)
    property-set))
 
 (define (get-first-context-id! mus)