diff options
Diffstat (limited to 'spec/rubyspec/optional/capi/ext/fixnum_spec.c')
-rw-r--r-- | spec/rubyspec/optional/capi/ext/fixnum_spec.c | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/spec/rubyspec/optional/capi/ext/fixnum_spec.c b/spec/rubyspec/optional/capi/ext/fixnum_spec.c index 49dd039c52..78d452f936 100644 --- a/spec/rubyspec/optional/capi/ext/fixnum_spec.c +++ b/spec/rubyspec/optional/capi/ext/fixnum_spec.c @@ -5,23 +5,37 @@ extern "C" { #endif +static VALUE fixnum_spec_FIX2INT(VALUE self, VALUE value) { + int i = FIX2INT(value); + return INT2NUM(i); +} + +static VALUE fixnum_spec_FIX2UINT(VALUE self, VALUE value) { + unsigned int i = FIX2UINT(value); + return UINT2NUM(i); +} + #ifdef HAVE_RB_FIX2UINT static VALUE fixnum_spec_rb_fix2uint(VALUE self, VALUE value) { - return INT2FIX(rb_fix2uint(value)); + unsigned int i = rb_fix2uint(value); + return UINT2NUM(i); } #endif #ifdef HAVE_RB_FIX2INT static VALUE fixnum_spec_rb_fix2int(VALUE self, VALUE value) { - return INT2FIX(rb_fix2int(value)); + int i = rb_fix2int(value); + return INT2NUM(i); } #endif - void Init_fixnum_spec(void) { VALUE cls; cls = rb_define_class("CApiFixnumSpecs", rb_cObject); + rb_define_method(cls, "FIX2INT", fixnum_spec_FIX2INT, 1); + rb_define_method(cls, "FIX2UINT", fixnum_spec_FIX2UINT, 1); + #ifdef HAVE_RB_FIX2UINT rb_define_method(cls, "rb_fix2uint", fixnum_spec_rb_fix2uint, 1); #endif |