From 060f433f48ccb293ed21bc99a89b162a548d2e74 Mon Sep 17 00:00:00 2001 From: nobu Date: Wed, 20 May 2009 16:43:41 +0000 Subject: * include/ruby/ruby.h (rb_long2int, RARRAY_LENINT): check long to cast to int. [ruby-dev:38508] * struct.c, vm_eval.c, vm_insnhelper.c: use RARRAY_LENINT. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23503 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- struct.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'struct.c') diff --git a/struct.c b/struct.c index 2962d400ca..718add389f 100644 --- a/struct.c +++ b/struct.c @@ -378,7 +378,7 @@ rb_struct_initialize_m(int argc, VALUE *argv, VALUE self) VALUE rb_struct_initialize(VALUE self, VALUE values) { - return rb_struct_initialize_m(RARRAY_LEN(values), RARRAY_PTR(values), self); + return rb_struct_initialize_m(RARRAY_LENINT(values), RARRAY_PTR(values), self); } static VALUE @@ -414,10 +414,10 @@ VALUE rb_struct_new(VALUE klass, ...) { VALUE tmpargs[N_REF_FUNC], *mem = tmpargs; - long size, i; + int size, i; va_list args; - size = num_members(klass); + size = rb_long2int(num_members(klass)); if (size > numberof(tmpargs)) { tmpargs[0] = rb_ary_tmp_new(size); mem = RARRAY_PTR(tmpargs[0]); -- cgit v1.2.3