Project

General

Profile

Actions

Bug #7755

closed

JSON::Generate#configure's argument conversion

Added by marcandre (Marc-Andre Lafortune) about 11 years ago. Updated over 6 years ago.

Status:
Closed
Target version:
ruby -v:
r38977
[ruby-core:51740]

Description

I notice a tiny bug in ext/json/generator/generator.c:514

tmp = rb_convert_type(opts, T_HASH, "Hash", "to_hash");
if (NIL_P(tmp)) tmp = rb_convert_type(opts, T_HASH, "Hash", "to_h");
if (NIL_P(tmp)) {
    rb_raise(rb_eArgError, "opts has to be hash like or convertable into a hash");
}
opts = tmp;

Bug is that rb_convert_type never returns nil.

Either both rb_convert_type are changed to rb_check_convert_type, or these lines are simply replaced by:

opts = rb_convert_type(opts, T_HASH, "Hash", "to_hash");

I'd recommend this last option, for consistency with the rest of MRI.

Updated by marcandre (Marc-Andre Lafortune) about 11 years ago

  • Subject changed from JSON::Generate#configure's argument conversion to JSON::Generate#configure's argument conversion

There's some more unreachable code in ext/json/parser/parser.rl:629

Actions #2

Updated by naruse (Yui NARUSE) about 11 years ago

  • Target version changed from 2.0.0 to 2.6

Could you report it to upstream?
https://github.com/flori/json

Actions #4

Updated by marcandre (Marc-Andre Lafortune) over 6 years ago

  • Status changed from Open to Closed
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0