too. Plugs memory leak.
* lily/score.cc (Score): unprotect copy of Output_def. Plugs
memory leak.
2005-05-31 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ * lily/lily-parser-scheme.cc (LY_DEFINE): unprotect paper
+ too. Plugs memory leak.
+
* make/lilypond.fedora.spec.in (Group): remove
lilypond-pdfpc-helper.
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_);
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;
}
}
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))
{
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);
}
}
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;
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
(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))