From 019a0ed0c78ccd0eb694d09c6a226761261ec15d Mon Sep 17 00:00:00 2001 From: Kenta Murata Date: Fri, 17 Jan 2020 09:05:17 +0900 Subject: Make RATIONAL_SET_{NUM,DEN} static inline functions --- internal/rational.h | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'internal/rational.h') diff --git a/internal/rational.h b/internal/rational.h index c783c5162b..028fc4c03e 100644 --- a/internal/rational.h +++ b/internal/rational.h @@ -11,6 +11,7 @@ */ #include "ruby/config.h" /* for HAVE_LIBGMP */ #include "ruby/ruby.h" /* for struct RBasic */ +#include "internal/gc.h" /* for RB_OBJ_WRITE */ struct RRational { struct RBasic basic; @@ -19,8 +20,6 @@ struct RRational { }; #define RRATIONAL(obj) (R_CAST(RRational)(obj)) -#define RRATIONAL_SET_NUM(rat, n) RB_OBJ_WRITE((rat), &RRATIONAL(rat)->num, (n)) -#define RRATIONAL_SET_DEN(rat, d) RB_OBJ_WRITE((rat), &RRATIONAL(rat)->den, (d)) /* rational.c */ VALUE rb_rational_canonicalize(VALUE x); @@ -37,6 +36,9 @@ VALUE rb_numeric_quo(VALUE x, VALUE y); VALUE rb_float_numerator(VALUE x); VALUE rb_float_denominator(VALUE x); +static inline void RATIONAL_SET_NUM(VALUE r, VALUE n); +static inline void RATIONAL_SET_DEN(VALUE r, VALUE d); + RUBY_SYMBOL_EXPORT_BEGIN /* rational.c (export) */ VALUE rb_gcd(VALUE x, VALUE y); @@ -46,4 +48,16 @@ VALUE rb_gcd_gmp(VALUE x, VALUE y); #endif RUBY_SYMBOL_EXPORT_END +static inline void +RATIONAL_SET_NUM(VALUE r, VALUE n) +{ + RB_OBJ_WRITE(r, &RRATIONAL(r)->num, n); +} + +static inline void +RATIONAL_SET_DEN(VALUE r, VALUE d) +{ + RB_OBJ_WRITE(r, &RRATIONAL(r)->den, d); +} + #endif /* INTERNAL_RATIONAL_H */ -- cgit v1.2.1