smobify_self ();
Music *m = unsmob_music (s.music_);
- music_ = m ? m->clone ()->self_scm () : SCM_EOL;
- scm_gc_unprotect_object (music_);
+ if (m)
+ {
+ Music *mclone = m->clone ();
+ music_ = mclone->unprotect ();
+ }
+ else
+ music_ = SCM_EOL;
+
for (int i = 0, n = s.defs_.size (); i < n; i++)
{
Output_def * copy = s.defs_[i]->clone ();
defs_.push (copy);
- scm_gc_unprotect_object (copy->self_scm ());
+ copy->unprotect ();
}
header_ = ly_make_anonymous_module (false);
if (ly_is_module (s.header_))
Real scale = scm_to_double (bpd->c_variable ("outputscale"));
Output_def *def = scale_output_def (unsmob_output_def (outdef), scale);
- scaled_def = def->self_scm ();
+ Output_def *bdef = scale_output_def (bpd, scale);
+ def->parent_ = bdef;
- scaled_bookdef = scale_output_def (bpd, scale)->self_scm ();
- unsmob_output_def (scaled_def)->parent_
- = unsmob_output_def (scaled_bookdef);
+ scaled_def = def->self_scm ();
+ scaled_bookdef = bdef->self_scm();
- scm_gc_unprotect_object (scaled_bookdef);
- scm_gc_unprotect_object (scaled_def);
+ def->unprotect();
+ bdef->unprotect ();
}
SCM context = ly_run_translator (music, scaled_def, key);
SCM systems = pscore->get_paper_systems ();
paper_book->add_score (systems);
- paper_book->classic_output (ly_scm2string (outname));
- scm_gc_unprotect_object (paper_book->self_scm ());
+ paper_book->classic_output (outname);
+ paper_book->unprotect ();
}
scm_remember_upto_here_1 (scaled_def);
int outdef_count = defs_.size ();
Object_key *key = new Lilypond_general_key (book_key, user_key_, 0);
- SCM scm_key = key->self_scm ();
- scm_gc_unprotect_object (scm_key);
+ SCM scm_key = key->unprotect ();
for (int i = 0; !i || i < outdef_count; i++)
{
{
def = scale_output_def (def, scale);
def->parent_ = layoutbook;
- scaled = def->self_scm ();
- scm_gc_unprotect_object (scaled);
+
+ scaled = def->unprotect ();
}
/* TODO: fix or junk --no-layout. */
{
m->origin ()->error (_ ("errors found, ignoring music expression"));
- this->error_found_ = this->error_found_ || to_boolean (m->get_property ("error-found"));
+ this->error_found_ = this->error_found_
+ || to_boolean (m->get_property ("error-found"));
}
if (this->error_found_)