From 39beb9ab68f6eaa5ea484fa9c03f7aaaaa8aab17 Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Thu, 2 Nov 2006 15:04:38 +0100 Subject: [PATCH] Remove set-part-combine-listener. This plugs a memory leak. --- ly/declarations-init.ly | 2 -- ly/music-functions-init.ly | 5 +++-- scm/part-combiner.scm | 25 ++++++------------------- 3 files changed, 9 insertions(+), 23 deletions(-) diff --git a/ly/declarations-init.ly b/ly/declarations-init.ly index 6728973084..3ff8e22119 100644 --- a/ly/declarations-init.ly +++ b/ly/declarations-init.ly @@ -106,8 +106,6 @@ partCombineListener = \layout { } } -#(set-part-combine-listener partCombineListener) - \include "dynamic-scripts-init.ly" \include "spanners-init.ly" \include "property-init.ly" diff --git a/ly/music-functions-init.ly b/ly/music-functions-init.ly index 4686f7b723..1473970c17 100644 --- a/ly/music-functions-init.ly +++ b/ly/music-functions-init.ly @@ -23,7 +23,7 @@ acciaccatura = addquote = #(define-music-function (parser location name music) (string? ly:music?) "Add a piece of music to be quoted " - (add-quotable name music) + (add-quotable parser name music) (make-music 'SequentialMusic 'void #t)) @@ -338,7 +338,8 @@ octave = )) partcombine = #(define-music-function (parser location part1 part2) (ly:music? ly:music?) - (make-part-combine-music (list part1 part2))) + (make-part-combine-music parser + (list part1 part2))) pitchedTrill = diff --git a/scm/part-combiner.scm b/scm/part-combiner.scm index a444313f66..cc051cd5e6 100644 --- a/scm/part-combiner.scm +++ b/scm/part-combiner.scm @@ -220,25 +220,13 @@ Voice-state objects (ly:interpret-music-expression (make-non-relative-music music) global) context-list)) -(define noticed '()) -;; todo: junk this, extract $defaultlayout from parser instead -(define part-combine-listener '()) - -; UGH - should pass noticed setter to part-combine-listener -(define-safe-public (set-part-combine-listener x) - (set! part-combine-listener x)) - -(define-public (notice-the-events-for-pc context lst) - "add CONTEXT-ID, EVENT list to NOTICED variable." - - (set! noticed (acons (ly:context-id context) lst noticed))) - -(define-public (make-part-combine-music music-list) +(define-public (make-part-combine-music parser music-list) (let* ((m (make-music 'PartCombineMusic)) (m1 (make-non-relative-music (context-spec-music (first music-list) 'Voice "one"))) (m2 (make-non-relative-music (context-spec-music (second music-list) 'Voice "two"))) - (evs2 (recording-group-emulate m2 part-combine-listener)) - (evs1 (recording-group-emulate m1 part-combine-listener))) + (listener (ly:parser-lookup parser 'partCombineListener)) + (evs2 (recording-group-emulate m2 listener)) + (evs1 (recording-group-emulate m1 listener))) (set! (ly:music-property m 'elements) (list m1 m2)) (set! (ly:music-property m 'split-list) @@ -495,11 +483,10 @@ the mark when there are no spanners active. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(define-public (add-quotable name mus) - (set! noticed '()) +(define-public (add-quotable parser name mus) (let* ((tab (eval 'musicQuotes (current-module))) (context-list (recording-group-emulate (context-spec-music mus 'Voice) - part-combine-listener))) + (ly:parser-lookup parser 'partCombineListener)))) (if (pair? context-list) (hash-set! tab name ;; cdr : skip name string -- 2.39.5