Project

General

Profile

Bug #9207 » fix_stackerror.patch

phasis68 (Heesob Park), 12/05/2013 11:23 PM

View differences:

hash.c → hash.c.new
}
else if (BUILTIN_TYPE(a) == T_STRING) {
hnum = rb_str_hash(a);
}
else {
hval = rb_hash(a);
hnum = FIX2LONG(hval);
} else {
#if SIZEOF_LONG_LONG == SIZEOF_VOIDP
if (BUILTIN_TYPE(a) == T_BIGNUM) {
int sign;
unsigned long ul;
sign = rb_integer_pack(a, &ul, 1, sizeof(ul), 0,
INTEGER_PACK_NATIVE_BYTE_ORDER);
ul &= (1UL << (sizeof(long)*CHAR_BIT-1)) - 1;
hnum = (sign < 0) ? LONG2FIX(-(long)ul) : LONG2FIX((long)ul);
} else {
#endif
hval = rb_hash(a);
hnum = FIX2LONG(hval);
}
}
hnum <<= 1;
return (st_index_t)RSHIFT(hnum, 1);
    (1-1/1)