source file of the GNU LilyPond music typesetter
- (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ (c) 1999--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
#include "warn.hh"
SCM
-Moment::mark_smob (SCM s)
+Moment::mark_smob (SCM)
{
return SCM_EOL;
}
int
Moment::print_smob (SCM s, SCM port, scm_print_state *)
{
- Moment *r = (Moment *) SCM_CDR (s);
+ Moment *r = (Moment *) gh_cdr (s);
scm_puts ("#<Mom ", port);
String str(r->str());
void
Moment::do_smobify_self ()
-{}
+{
+}
SCM
make_rational (SCM n, SCM d)
{
+ Moment *r;
+ SCM retval = SCM_EOL;
if (SCM_INUMP (n) && SCM_INUMP(d))
{
- Moment *r = new Moment (gh_scm2int (n), gh_scm2int (d));
- return r->smobify_self ();
+ r= new Moment (gh_scm2int (n), gh_scm2int (d));
}
else
{
- ::error ("Not a number");
- assert(false);
+ ::error ("make-moment takes two integer arguments.");
+ r = new Moment (1,1);
}
+
+ retval = r->smobify_self ();
+ scm_unprotect_object (r->self_scm_);
+ return retval ;
}
#include "ly-smobs.icc"
+IMPLEMENT_UNSMOB(Moment,moment);
IMPLEMENT_SMOBS(Moment);
void