CVSROOT: /cvsroot/lilypond
Module name: lilypond
Branch:
Changes by: Han-Wen Nienhuys <[EMAIL PROTECTED]> 05/05/31 18:50:05
Modified files:
. : ChangeLog
lily : lily-parser-scheme.cc score.cc
stencil-interpret.cc
scm : define-stencil-commands.scm
Log message:
* lily/lily-parser-scheme.cc (LY_DEFINE): unprotect paper
too. Plugs memory leak.
* lily/score.cc (Score): unprotect copy of Output_def. Plugs
memory leak.
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/ChangeLog.diff?tr1=1.3695&tr2=1.3696&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/lily-parser-scheme.cc.diff?tr1=1.10&tr2=1.11&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/score.cc.diff?tr1=1.163&tr2=1.164&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/stencil-interpret.cc.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/scm/define-stencil-commands.scm.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
Patches:
Index: lilypond/ChangeLog
diff -u lilypond/ChangeLog:1.3695 lilypond/ChangeLog:1.3696
--- lilypond/ChangeLog:1.3695 Tue May 31 15:44:48 2005
+++ lilypond/ChangeLog Tue May 31 18:50:02 2005
@@ -1,5 +1,8 @@
2005-05-31 Han-Wen Nienhuys <[EMAIL PROTECTED]>
+ * lily/lily-parser-scheme.cc (LY_DEFINE): unprotect paper
+ too. Plugs memory leak.
+
* make/lilypond.fedora.spec.in (Group): remove
lilypond-pdfpc-helper.
Index: lilypond/lily/lily-parser-scheme.cc
diff -u lilypond/lily/lily-parser-scheme.cc:1.10
lilypond/lily/lily-parser-scheme.cc:1.11
--- lilypond/lily/lily-parser-scheme.cc:1.10 Tue Apr 12 22:49:28 2005
+++ lilypond/lily/lily-parser-scheme.cc Tue May 31 18:50:04 2005
@@ -194,7 +194,8 @@
SCM_ASSERT_TYPE (parser, parser_smob, SCM_ARG1, __FUNCTION__, "parser");
SCM_ASSERT_TYPE (score, score_smob, SCM_ARG2, __FUNCTION__, "score");
- SCM header = ly_c_module_p (score->header_) ? score->header_
+ SCM header = ly_c_module_p (score->header_)
+ ? score->header_
: parser->lexer_->lookup_identifier ("$globalheader");
File_name outname (parser->output_basename_);
@@ -212,12 +213,15 @@
if (score->defs_.is_empty ())
{
Output_def *layout = get_layout (parser);
- default_rendering (score->get_music (), layout->self_scm (),
- get_paper (parser)->self_scm (),
+ default_rendering (score->get_music (),
+ layout->self_scm (),
+ paper,
header, os, key->self_scm ());
+
scm_gc_unprotect_object (layout->self_scm ());
}
+ scm_gc_unprotect_object (paper);
scm_gc_unprotect_object (key->self_scm ());
return SCM_UNSPECIFIED;
}
Index: lilypond/lily/score.cc
diff -u lilypond/lily/score.cc:1.163 lilypond/lily/score.cc:1.164
--- lilypond/lily/score.cc:1.163 Tue May 31 15:25:26 2005
+++ lilypond/lily/score.cc Tue May 31 18:50:04 2005
@@ -119,7 +119,9 @@
}
SCM context = ly_run_translator (music, scaled_def, key);
- Music_output *output = unsmob_music_output (ly_format_output (context));
+
+ SCM output_as_scm = ly_format_output (context);
+ Music_output *output = unsmob_music_output (output_as_scm);
if (Paper_score *pscore = dynamic_cast<Paper_score*> (output))
{
@@ -137,9 +139,9 @@
paper_book->classic_output (ly_scm2string (outname));
scm_gc_unprotect_object (paper_book->self_scm ());
}
- scm_gc_unprotect_object (output->self_scm ());
scm_remember_upto_here_1 (scaled_def);
+ scm_remember_upto_here_1 (output_as_scm);
scm_remember_upto_here_1 (scaled_bookdef);
}
Index: lilypond/lily/stencil-interpret.cc
diff -u lilypond/lily/stencil-interpret.cc:1.1
lilypond/lily/stencil-interpret.cc:1.2
--- lilypond/lily/stencil-interpret.cc:1.1 Mon May 30 23:38:46 2005
+++ lilypond/lily/stencil-interpret.cc Tue May 31 18:50:04 2005
@@ -29,6 +29,7 @@
}
else if (head == ly_symbol2scm ("combine-stencil"))
{
+
for (SCM x = scm_cdr (expr); scm_is_pair (x); x = scm_cdr (x))
interpret_stencil_expression (scm_car (x), func, func_arg, o);
return;
Index: lilypond/scm/define-stencil-commands.scm
diff -u lilypond/scm/define-stencil-commands.scm:1.2
lilypond/scm/define-stencil-commands.scm:1.3
--- lilypond/scm/define-stencil-commands.scm:1.2 Mon May 30 23:45:22 2005
+++ lilypond/scm/define-stencil-commands.scm Tue May 31 18:50:04 2005
@@ -29,7 +29,15 @@
white-dot
white-text
embedded-ps
- zigzag-line))
+ zigzag-line
+ setcolor
+ resetcolor
+
+ grob-cause
+ no-origin
+ placebox
+ unknown
+ ))
;; TODO:
;; - generate this list by registering the output-backend-commands
@@ -38,8 +46,8 @@
(define-public (ly:all-output-backend-commands)
"Return list of output backend commands."
- '(
- grob-cause
- no-origin
- placebox
- unknown))
+ '(combine-stencil
+ color
+ translate-stencil))
+
+(map ly:register-stencil-expression (ly:all-output-backend-commands))
_______________________________________________
Lilypond-cvs mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/lilypond-cvs