]> git.donarmstrong.com Git - lilypond.git/commitdiff
Use scm_to_int64/from_int64 for Rational/SCM conversions.
authorNeil Puttock <n.puttock@gmail.com>
Sat, 22 Nov 2008 16:42:29 +0000 (16:42 +0000)
committerNeil Puttock <n.puttock@gmail.com>
Sat, 22 Nov 2008 16:42:29 +0000 (16:42 +0000)
Also use I64 in moment.cc, moment-scheme.cc and duration-scheme.cc.

lily/duration-scheme.cc
lily/include/moment.hh
lily/lily-guile.cc
lily/moment-scheme.cc
lily/moment.cc

index d37147558112e5d64442d7a2fa44b7538341fe07..5bc12ea0731eebd694ee0caa4f1f3dc89e8b4b4c 100644 (file)
@@ -134,5 +134,5 @@ LY_DEFINE (ly_duration_factor, "ly:duration-factor",
 {
   LY_ASSERT_SMOB (Duration, dur, 1);
   Rational r = unsmob_duration (dur)->factor ();
-  return scm_cons (scm_from_int (r.num ()), scm_from_int (r.den ()));
+  return scm_cons (scm_from_int64 (r.num ()), scm_from_int64 (r.den ()));
 }
index a3b7544762b31079f3a8c005937d37ef33c3405f..a73b9961d1746ccc26dbe531fc7c43fa24f777ce 100644 (file)
@@ -41,8 +41,8 @@ public:
   void set_infinite (int k);
 
   bool to_bool () const;
-  int den () const;
-  int num () const;
+  I64 den () const;
+  I64 num () const;
   /*
     Deliver a copy of THIS as a smobified SCM
   */
index 9c88983e4c88586d90fc52f643feacaefd6af3c4..7c052876389b2ded1a402b2ed21bc2303cc196a8 100644 (file)
@@ -561,16 +561,16 @@ robust_scm2int (SCM k, int o)
 SCM
 ly_rational2scm (Rational r)
 {
-  return scm_divide (scm_from_long_long (r.numerator ()),
-                    scm_from_long_long (r.denominator ()));
+  return scm_divide (scm_from_int64 (r.numerator ()),
+                    scm_from_int64 (r.denominator ()));
 }
 
 
 Rational
 ly_scm2rational (SCM r)
 {
-  return Rational (scm_to_long_long (scm_numerator (r)),
-                  scm_to_long_long (scm_denominator (r)));
+  return Rational (scm_to_int64 (scm_numerator (r)),
+                  scm_to_int64 (scm_denominator (r)));
 }
 
 Rational
index 85155034c597bc6c3bd187d2960832a27f4b4387..89c69fa76df0ed4e6a7bc9cdf71017db4e88d04f 100644 (file)
@@ -111,7 +111,7 @@ LY_DEFINE (ly_moment_grace_numerator, "ly:moment-grace-numerator",
 
   Moment *ma = unsmob_moment (mom);
 
-  return scm_from_int (ma->grace_part_.numerator ());
+  return scm_from_int64 (ma->grace_part_.numerator ());
 }
 
 LY_DEFINE (ly_moment_grace_denominator, "ly:moment-grace-denominator",
@@ -121,7 +121,7 @@ LY_DEFINE (ly_moment_grace_denominator, "ly:moment-grace-denominator",
   LY_ASSERT_SMOB (Moment, mom, 1);
   Moment *ma = unsmob_moment (mom);
 
-  return scm_from_int (ma->grace_part_.denominator ());
+  return scm_from_int64 (ma->grace_part_.denominator ());
 }
 LY_DEFINE (ly_moment_main_numerator, "ly:moment-main-numerator",
           1, 0, 0, (SCM mom),
@@ -130,7 +130,7 @@ LY_DEFINE (ly_moment_main_numerator, "ly:moment-main-numerator",
   LY_ASSERT_SMOB (Moment, mom, 1);
   Moment *ma = unsmob_moment (mom);
 
-  return scm_from_int (ma->main_part_.numerator ());
+  return scm_from_int64 (ma->main_part_.numerator ());
 }
 
 LY_DEFINE (ly_moment_main_denominator, "ly:moment-main-denominator",
@@ -140,7 +140,7 @@ LY_DEFINE (ly_moment_main_denominator, "ly:moment-main-denominator",
   LY_ASSERT_SMOB (Moment, mom, 1);
   Moment *ma = unsmob_moment (mom);
 
-  return scm_from_int (ma->main_part_.denominator ());
+  return scm_from_int64 (ma->main_part_.denominator ());
 }
 
 LY_DEFINE (ly_moment_less_p, "ly:moment<?",
index 7516bf20e1a786eda78b6a4e3ce926e29b7df4e0..c9b3bd4250438b7ae09251f0ab17269d8db57ca4 100644 (file)
@@ -60,10 +60,10 @@ SCM
 Moment::as_scheme () const
 {
   return scm_list_5 (ly_symbol2scm ("ly:make-moment"),
-                    scm_from_int (main_part_.num ()),
-                    scm_from_int (main_part_.den ()),
-                    scm_from_int (grace_part_.num ()),
-                    scm_from_int (grace_part_.den ()));
+                    scm_from_int64 (main_part_.num ()),
+                    scm_from_int64 (main_part_.den ()),
+                    scm_from_int64 (grace_part_.num ()),
+                    scm_from_int64 (grace_part_.den ()));
 }
 
 SCM
@@ -129,13 +129,14 @@ Moment::operator %= (Moment const &src)
   grace_part_ %= src.main_part_;
 }
 
-int
+I64
 Moment::den () const
 {
+  /* TODO: ensure MSB == 0 here */
   return main_part_.den ();
 }
 
-int
+I64
 Moment::num () const
 {
   return main_part_.num ();