From b6ec030914958e1f5ba812062376e35a1e8f93fe Mon Sep 17 00:00:00 2001 From: Laurent Sansonetti Date: Sat, 13 Mar 2010 04:04:15 +0000 Subject: [PATCH] inline the boxing code git-svn-id: http://svn.macosforge.org/repository/ruby/MacRuby/trunk@3754 23306eb0-4c56-4727-a40e-e92c0eb68959 --- numeric.c | 28 ---------------------------- objc.h | 14 +++++++++----- 2 files changed, 9 insertions(+), 33 deletions(-) diff --git a/numeric.c b/numeric.c index 34bae272f..0ef772af3 100644 --- a/numeric.c +++ b/numeric.c @@ -93,34 +93,6 @@ VALUE rb_cFixnum; VALUE rb_eZeroDivError; VALUE rb_eFloatDomainError; -static VALUE -rb_box_fixfloat0(double value) -{ - CFNumberRef number = CFNumberCreate(NULL, kCFNumberDoubleType, &value); - CFMakeCollectable(number); - return (VALUE)number; -} - -VALUE -rb_box_fixfloat(VALUE fixfloat) -{ - return rb_box_fixfloat0(NUM2DBL(fixfloat)); -} - -static VALUE -rb_box_fixnum0(long value) -{ - CFNumberRef number = CFNumberCreate(NULL, kCFNumberLongType, &value); - CFMakeCollectable(number); - return (VALUE)number; -} - -VALUE -rb_box_fixnum(VALUE fixnum) -{ - return rb_box_fixnum0(FIX2LONG(fixnum)); -} - void rb_num_zerodiv(void) { diff --git a/objc.h b/objc.h index f0ad81d98..f0eb70ce8 100644 --- a/objc.h +++ b/objc.h @@ -167,9 +167,6 @@ TypeArity(const char *type) return arity; } -VALUE rb_box_fixnum(VALUE); -VALUE rb_box_fixfloat(VALUE); - static inline id rb_rval_to_ocid(VALUE obj) { @@ -184,10 +181,17 @@ rb_rval_to_ocid(VALUE obj) return (id)kCFNull; } if (FIXNUM_P(obj)) { - return (id)rb_box_fixnum(obj); + long val = FIX2LONG(obj); + CFNumberRef number = CFNumberCreate(NULL, kCFNumberLongType, &val); + CFMakeCollectable(number); + return (id)number; } if (FIXFLOAT_P(obj)) { - return (id)rb_box_fixfloat(obj); + double val = NUM2DBL(obj); + CFNumberRef number = CFNumberCreate(NULL, kCFNumberDoubleType, + &val); + CFMakeCollectable(number); + return (id)number; } } return (id)obj;