diff options
author | Koichi Sasada <ko1@atdot.net> | 2020-03-09 02:53:46 +0900 |
---|---|---|
committer | Koichi Sasada <ko1@atdot.net> | 2020-03-09 02:53:46 +0900 |
commit | dff69bb46204cf9d0d1abfe9d6e76a1768fb9734 (patch) | |
tree | 7a5992348e219dfcfd76aff7c905b3ac549a777b | |
parent | daa04c556238729256b77ccabbd56a9ebdbd7e46 (diff) | |
download | ruby-dff69bb46204cf9d0d1abfe9d6e76a1768fb9734.tar.gz |
Cast properly for shift operand
`(int) << RHASH_LEV_SHIFT` can be negative integer.
-rw-r--r-- | hash.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -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); } |