+2002-09-15 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+ * lily/sequential-iterator.cc (Sequential_iterator): init list_
+
+ * lily/translator-def.cc (Translator_def): make a GC proof copy
+ constructor.
+
2002-09-14 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ * lily/percent-repeat-iterator.cc (process): quit iter.
+
* lily/simultaneous-music-iterator.cc
(Simultaneous_music_iterator): protection bugfix.
(get_pending_events): bugfix: don't use s twice.
@end quotation
@separate
-The key signature is set with the command ``@code{\key}'':
+The key signature is set with the command ``@code{\key}''. One caution:
+you need to specify whether the key is @code{\major} or @code{\minor}.
@quotation
@example
\key d \major
include $(depth)/make/stepmake.make
-TITLE=LilyPond Feature Tests
+TITLE=LilyPond Tips and Tricks
/*
- repeated-music-iterator.cc -- implement Folded_repeat_iterator
+ folded-repeat-iterator.cc -- implement Folded_repeat_iterator
source file of the GNU LilyPond music typesetter
main_iter_ = unsmob_iterator (get_iterator (mus->body ()));
if (!main_iter_->ok ())
{
- leave_body ();
+ leave_body ();
enter_alternative ();
}
}
Repeated_music * mus = dynamic_cast<Repeated_music *> (get_music ());
if (mus->alternatives ())
{
+ /*
+ ugh.
+ */
Simultaneous_music_iterator * s = new Simultaneous_music_iterator;
s->separate_contexts_b_ = true;
s->init_translator (mus, report_to ());
alternative_iter_ = s;
alternative_iter_->construct_children ();
+
+ scm_gc_unprotect_object (s->self_scm());
}
}
void
Lyric_combine_music_iterator::do_quit ()
{
- if (music_iter_) music_iter_->quit();
- if (lyric_iter_) lyric_iter_->quit();
+ if (music_iter_)
+ music_iter_->quit();
+ if (lyric_iter_)
+ lyric_iter_->quit();
}
Lyric_combine_music_iterator::Lyric_combine_music_iterator (Lyric_combine_music_iterator const & src)
void
Part_combine_music_iterator::do_quit ()
{
- if (first_iter_) first_iter_->quit();
- if (second_iter_) second_iter_->quit();
+ if (first_iter_)
+ first_iter_->quit();
+ if (second_iter_)
+ second_iter_->quit();
}
Part_combine_music_iterator::Part_combine_music_iterator (Part_combine_music_iterator const &src)
if (finish_mom_ <= m )
{
+ child_iter_->quit();
child_iter_ = 0;
}
}
Sequential_iterator::Sequential_iterator ()
{
here_mom_ = Moment (0);
+ list_ = SCM_EOL;
grace_fixups_ = 0;
iter_ =0;
}
cursor_ = src.cursor_;
list_ = src.cursor_;
here_mom_ = src.here_mom_;
- if (src.iter_)
- iter_ = src.iter_->clone ();
- else
- iter_ = 0;
+ iter_ = (src.iter_) ? src.iter_->clone () : 0;
if (iter_)
scm_gc_unprotect_object (iter_->self_scm());
end_consists_name_list_ = SCM_EOL;
property_ops_ = SCM_EOL;
type_name_ = SCM_EOL;
+
+ smobify_self();
+
}
+
Translator_def::~Translator_def ()
{
}
Translator_def::Translator_def (Translator_def const & s)
: Input (s)
{
+ type_aliases_ = SCM_EOL;
+ translator_group_type_ = SCM_EOL;
+ accepts_name_list_ = SCM_EOL;
+ consists_name_list_ = SCM_EOL;
+ end_consists_name_list_ = SCM_EOL;
+ property_ops_ = SCM_EOL;
+ type_name_ = SCM_EOL;
+
+
+ smobify_self();
consists_name_list_ = scm_list_copy (s.consists_name_list_);
end_consists_name_list_ = scm_list_copy (s.end_consists_name_list_);
accepts_name_list_ = scm_list_copy (s.accepts_name_list_);
Translator_def::clone_scm () const
{
Translator_def * t = new Translator_def (*this);
- return t->unprotected_smobify_self ();
+ scm_gc_unprotect_object (t->self_scm());
+ return t->self_scm();
}
SCM
Translator_def::make_scm ()
{
Translator_def* t = new Translator_def;
- return t->unprotected_smobify_self ();
+ scm_gc_unprotect_object (t->self_scm());
+ return t->self_scm();
}
void
;(debug-enable 'debug)
;(debug-enable 'backtrace)
;(read-enable 'positions)
-;(set-debug-cell-accesses! #f)
+;(set-debug-cell-accesses! 15000)
kpse = re.sub('[ \t\n]+$','', kpse)
type1_paths = os.popen ('kpsewhich -expand-path=\$T1FONTS').read ()
+binary = 'lilypond'
+#binary = 'valgrind --suppressions=/home/hanwen/usr/src/guile-1.6.supp --num-callers=10 /home/hanwen/usr/src/lilypond/lily/out/lilypond'
environment = {
# TODO: * prevent multiple addition.
# * clean TEXINPUTS, MFINPUTS, TFMFONTS,
if g_outdir:
lilyopts = lilyopts + '--dep-prefix=' + g_outdir + '/'
texfiles = string.join (tex, ' ')
- cmd = 'lilypond --header=texidoc %s %s %s' \
- % (lilyopts, g_extra_opts, texfiles)
+ cmd = '%s --header=texidoc %s %s %s' \
+ % (binary, lilyopts, g_extra_opts, texfiles)
system (cmd)