+1.3.59.uu2.jcn1
+===============
+
+* Fixed scm_un/protect_object for guile-1.3.4 and 1.3.5 snapshots,
+ in the process reduced number of protect/unprotect calls. With
+ guile-1.3.5 snapshot, memory usage has decreased by 1/5th, now
+ just 10% above the 1.2 level. Also, Lily's a bit faster.
+
+* Fixed make diff bug in stepmake to be able to make this diff :-)
+
1.3.59.hwn1
===========
MAJOR_VERSION=1
MINOR_VERSION=3
PATCH_LEVEL=59
-MY_PATCH_LEVEL=uu2
+MY_PATCH_LEVEL=uu2.jcn1
# use the above to send patches: MY_PATCH_LEVEL is always empty for a
# released version.
DECLARE_ID_CLASS(Midi_def);
Identifier * unsmob_identifier (SCM);
+SCM smobify (Identifier*);
#endif // IDENTIFIER_HH
DECLARE_SMOBS;
};
-
+SCM smobify (Moment*);
Moment * unsmob_moment (SCM);
IMPLEMENT_ARITHMETIC_OPERATOR (Moment, / );
Paper_column::Paper_column (Moment w)
: Item (SCM_EOL) // guh.?
{
- SCM when = (new Moment (w))->smobify_self ();
- scm_unprotect_object (when);
+ SCM when = smobify (new Moment (w));
set_elt_property ("when", when);
Axis_group_interface (this).set_interface ();
Scheme_hash_table::set (SCM k, SCM v)
{
(*this)[k] = v;
- scm_unprotect_object (v);
}
// UGH.
void
Scope::set (String s, Identifier * id)
{
- return id_dict_->set (ly_symbol2scm (s.ch_C()),
- id->smobify_self());
+ return id_dict_->set (ly_symbol2scm (s.ch_C()), smobify (id));
}
SCM
Score_element::~Score_element()
{
+ // this goes awry when score-elements are copied...
+ // real weird Paper_column::~Paper_column () -> infinity_mom
+ // unsmobify_self ();
}
Paper_column * sc
= dynamic_cast<Paper_column*> (get_staff_info ().musical_pcol_l ());
- SCM sh = (new Moment (shortest_playing))->smobify_self ();
- SCM st = (new Moment (starter))->smobify_self ();
+ SCM sh = smobify (new Moment (shortest_playing));
+ SCM st = smobify (new Moment (starter));
- scm_unprotect_object (st);
- scm_unprotect_object (sh);
-
sc->set_elt_property ("shortest-playing-duration", sh);
sc->set_elt_property ("shortest-starter-duration", st);
}
measure_position ().str ()));
// resync
daddy_trans_l_->set_property("measurePosition",
- (new Moment)->smobify_self ());
+ smobify (new Moment));
}
}
{
daddy_trans_l_->set_property ("timing" , SCM_BOOL_T);
daddy_trans_l_->set_property ("currentBarNumber" , gh_int2scm (1));
- daddy_trans_l_->set_property("measurePosition",
- (new Moment)->smobify_self());
- daddy_trans_l_->set_property ("oneBeat",
- (new Moment (1,4))->smobify_self ());
- daddy_trans_l_->set_property("measureLength",
- (new Moment (1))->smobify_self());
+ daddy_trans_l_->set_property ("measurePosition", smobify (new Moment));
+ daddy_trans_l_->set_property ("oneBeat", smobify (new Moment (1,4)));
+ daddy_trans_l_->set_property ("measureLength", smobify (new Moment (1)));
}
Moment
{
Moment one_beat = Moment (1)/Moment (o);
Moment len = Moment (l) * one_beat;
- daddy_trans_l_->set_property ("measureLength",
- (new Moment (len))->smobify_self ());
- daddy_trans_l_->set_property ("beatLength",
- (new Moment (one_beat))->smobify_self ());
+ daddy_trans_l_->set_property ("measureLength", smobify (new Moment (len)));
+ daddy_trans_l_->set_property ("beatLength", smobify (new Moment (one_beat)));
}
Timing_translator::Timing_translator()
else
{
measposp = new Moment;
- daddy_trans_l_->set_property ("measurePosition", measposp->smobify_self ());
+ daddy_trans_l_->set_property ("measurePosition", smobify (measposp));
}
*measposp += dt;
elif to_src:
to_diff = to_diff + '.src'
else:
- sys.stderr.write (name + ': nothing to do: to == from == ' + from_diff + '\n')
+ sys.stderr.write (patch_name + ': nothing to do: to == from = ' + from_diff + '\n')
sys.exit (1)
if not patch_name:
def version_str_to_tuple(str):
t = string.split(str, '.')
- try:
- mypatch = t[3]
- except IndexError:
- mypatch = ''
+ mypatch = ''
+ if len (t) >= 4:
+ mypatch = string.join (t[3:], '.')
return (string.atoi(t[0]), string.atoi(t[1]), string.atoi(t[2]), mypatch)
def version_compare (tupl, tupr):