diff --git a/ChangeLog b/ChangeLog index 4a3322ff1d..e1588da10d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Tue Aug 3 21:01:10 2010 Nobuyoshi Nakada + + * hash.c (rb_check_hash_type): added. + Tue Aug 3 20:30:16 2010 Nobuyoshi Nakada * bignum.c (rb_big_eq): never equal to infinity. diff --git a/hash.c b/hash.c index 84d9eb3aec..8bba586dfb 100644 --- a/hash.c +++ b/hash.c @@ -418,6 +418,12 @@ to_hash(VALUE hash) return rb_convert_type(hash, T_HASH, "Hash", "to_hash"); } +VALUE +rb_check_hash_type(VALUE hash) +{ + return rb_check_convert_type(hash, T_HASH, "Hash", "to_hash"); +} + /* * call-seq: * Hash.try_convert(obj) -> hash or nil @@ -432,7 +438,7 @@ to_hash(VALUE hash) static VALUE rb_hash_s_try_convert(VALUE dummy, VALUE hash) { - return rb_check_convert_type(hash, T_HASH, "Hash", "to_hash"); + return rb_check_hash_type(hash); } static int diff --git a/include/ruby/intern.h b/include/ruby/intern.h index c977a4bfd5..748df322b7 100644 --- a/include/ruby/intern.h +++ b/include/ruby/intern.h @@ -406,6 +406,7 @@ VALUE rb_gc_start(void); #define Init_stack(addr) ruby_init_stack(addr) /* hash.c */ void st_foreach_safe(struct st_table *, int (*)(ANYARGS), st_data_t); +VALUE rb_check_hash_type(VALUE); void rb_hash_foreach(VALUE, int (*)(ANYARGS), VALUE); VALUE rb_hash(VALUE); VALUE rb_hash_new(void);