diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2019-07-31 11:08:05 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2019-07-31 11:08:05 +0900 |
commit | 13e84d5c0a53ad013aa0093f179115bcf88417e9 (patch) | |
tree | 936bc22c4cd56e0c60106761686020ff01ff962b /hash.c | |
parent | e315f3a1341f123051b75e589b746132c3510079 (diff) |
Moved RHASH_LEV_MASK and turned into a macro
Get rid of "ISO C restricts enumerator values to range of 'int'"
error.
Diffstat (limited to 'hash.c')
-rw-r--r-- | hash.c | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -1317,10 +1317,11 @@ iter_lev_in_ivar_set(VALUE hash, int lev) rb_ivar_set_internal(hash, rb_intern("hash_iter_lev"), INT2FIX(lev)); } +#define RHASH_LEV_MASK ((VALUE)RHASH_LEV_MAX << RHASH_LEV_SHIFT) static int iter_lev_in_flags(VALUE hash) { - unsigned int u = (unsigned int)(RBASIC(hash)->flags & (unsigned int)RHASH_LEV_MASK) >> RHASH_LEV_SHIFT; + unsigned int u = (unsigned int)((RBASIC(hash)->flags >> RHASH_LEV_SHIFT) & RHASH_LEV_MAX); return (int)u; } |