зеркало из https://github.com/github/ruby.git
Cast properly for shift operand
`(int) << RHASH_LEV_SHIFT` can be negative integer.
This commit is contained in:
Родитель
daa04c5562
Коммит
dff69bb462
2
hash.c
2
hash.c
|
@ -1434,7 +1434,7 @@ hash_iter_lev_inc(VALUE hash)
|
|||
}
|
||||
else {
|
||||
lev += 1;
|
||||
RBASIC(hash)->flags = ((RBASIC(hash)->flags & ~RHASH_LEV_MASK) | (lev << RHASH_LEV_SHIFT));
|
||||
RBASIC(hash)->flags = ((RBASIC(hash)->flags & ~RHASH_LEV_MASK) | ((VALUE)lev << RHASH_LEV_SHIFT));
|
||||
if (lev == RHASH_LEV_MAX) {
|
||||
iter_lev_in_ivar_set(hash, lev);
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче