summaryrefslogtreecommitdiff
path: root/hash.c
diff options
context:
space:
mode:
Diffstat (limited to 'hash.c')
-rw-r--r--hash.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/hash.c b/hash.c
index 1923c63eb3..5204d8b018 100644
--- a/hash.c
+++ b/hash.c
@@ -2088,9 +2088,11 @@ rb_hash_default_unredefined(VALUE hash)
VALUE
rb_hash_default_value(VALUE hash, VALUE key)
{
+ RUBY_ASSERT(RB_TYPE_P(hash, T_HASH));
+
if (LIKELY(rb_hash_default_unredefined(hash))) {
VALUE ifnone = RHASH_IFNONE(hash);
- if (!FL_TEST(hash, RHASH_PROC_DEFAULT)) return ifnone;
+ if (LIKELY(!FL_TEST_RAW(hash, RHASH_PROC_DEFAULT))) return ifnone;
if (UNDEF_P(key)) return Qnil;
return call_default_proc(ifnone, hash, key);
}