diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-07-01 00:28:49 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-07-01 00:28:49 +0000 |
commit | a78d00c040bc4f7394357a1d64fcad97671cf521 (patch) | |
tree | 10f5bbc95546a00e2a4d3510c496573aa9737904 /struct.c | |
parent | c137ccdce64cb64f6fab7de1b355c1055186d581 (diff) | |
download | ruby-a78d00c040bc4f7394357a1d64fcad97671cf521.tar.gz |
struct.c: fix implicit conversions
* struct.c (struct_member_pos): revert r51080 to fix other
implicit conversions but cast the return value to fix the
previous implicit conversion.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51081 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'struct.c')
-rw-r--r-- | struct.c | 8 |
1 files changed, 4 insertions, 4 deletions
@@ -131,7 +131,7 @@ struct_member_pos(VALUE s, VALUE name) { VALUE back = struct_ivar_get(rb_obj_class(s), id_back_members); VALUE const * p; - int j, mask; + long j, mask; if (UNLIKELY(NIL_P(back))) { rb_raise(rb_eTypeError, "uninitialized struct"); @@ -141,17 +141,17 @@ struct_member_pos(VALUE s, VALUE name) } p = RARRAY_CONST_PTR(back); - mask = RARRAY_LENINT(back); + mask = RARRAY_LEN(back); if (mask <= AREF_HASH_THRESHOLD) { if (UNLIKELY(RSTRUCT_LEN(s) != RARRAY_LEN(back))) { rb_raise(rb_eTypeError, - "struct size differs (%d required %ld given)", + "struct size differs (%ld required %ld given)", mask, RSTRUCT_LEN(s)); } for (j = 0; j < mask; j++) { if (p[j] == name) - return j; + return (int)j; } return -1; } |