aboutsummaryrefslogtreecommitdiffstats
path: root/struct.c
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-07-01 00:28:49 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-07-01 00:28:49 +0000
commite4984cf2d36880e28e95919e02073f9aaae5f036 (patch)
tree10f5bbc95546a00e2a4d3510c496573aa9737904 /struct.c
parentf91a5563400156bbacc6373a2dea0dcaf182a433 (diff)
downloadruby-e4984cf2d36880e28e95919e02073f9aaae5f036.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.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/struct.c b/struct.c
index 17c4643b72..c7ae830337 100644
--- a/struct.c
+++ b/struct.c
@@ -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;
}