--- form_wrap.c 2010-06-28 11:30:02.000000000 -0500 +++ ../form_wrap.new 2010-06-28 11:29:49.000000000 -0500 @@ -392,7 +392,7 @@ */ static VALUE rbncurs_m_new_form(VALUE dummy, VALUE rb_field_array) { - long n = RARRAY(rb_field_array)->len; + long n = RARRAY_LEN(rb_field_array); /* Will ncurses free this array? If not, must do it after calling free_form(). */ FIELD** fields = ALLOC_N(FIELD*, (n+1)); long i; @@ -616,7 +616,7 @@ rb_raise(rb_eArgError, "TYPE_ENUM requires three additional arguments"); } else { - int n = RARRAY(arg3)->len; + int n = RARRAY_LEN(arg3); /* Will ncurses free this array of strings in free_field()? */ char** list = ALLOC_N(char*, n+1); int i; @@ -775,7 +775,7 @@ * form_field */ static VALUE rbncurs_c_set_form_fields(VALUE rb_form, VALUE rb_field_array) { - long n = RARRAY(rb_field_array)->len; + long n = RARRAY_LEN(rb_field_array); /* If ncurses does not free memory used by the previous array of strings, */ /* we will have to do it now. */ FIELD** fields = ALLOC_N(FIELD*, (n+1)); @@ -1123,7 +1123,7 @@ VALUE argc = rb_funcall(proc, rb_intern("arity"),0); VALUE args = get_proc(field, FIELDTYPE_ARGS); if (args != Qnil) { - if (NUM2INT(argc)-1 != RARRAY(args)->len) { + if (NUM2INT(argc)-1 != RARRAY(args)) { char msg[500]; snprintf(msg, 500, "The validation functions for this field type need %d additional arguments.",NUM2INT(argc)-1); msg[499]=0; .