summaryrefslogtreecommitdiff
path: root/ext/json/parser
diff options
context:
space:
mode:
authorJean Boussier <[email protected]>2025-03-27 10:34:17 +0100
committerHiroshi SHIBATA <[email protected]>2025-03-28 12:44:53 +0900
commit756b75f2421008a46ee68390c683ca2c1a0ddc31 ()
treebabcd374b16cae7ab40c11be176e32661a693b5d /ext/json/parser
parent96ecac1e245aaac4484f69a731d2af4328760a8e (diff)
[ruby/json] Remove `Class#json_creatable?` monkey .
https://.com/ruby/json/commit/1ca7efed1f
Notes: Merged: https://.com/ruby/ruby/pull/13004
-rw-r--r--ext/json/parser/parser.c13
1 files changed, 11 insertions, 2 deletions
@@ -790,6 +790,15 @@ static inline VALUE json_decode_array(JSON_ParserState *state, JSON_ParserConfig
return array;
}
static inline VALUE json_decode_object(JSON_ParserState *state, JSON_ParserConfig *config, long count)
{
VALUE object;
@@ -818,7 +827,7 @@ static inline VALUE json_decode_object(JSON_ParserState *state, JSON_ParserConfi
}
if (!NIL_P(klassname)) {
VALUE klass = rb_funcall(mJSON, i_deep_const_get, 1, klassname);
- if (RTEST(rb_funcall(klass, i_json_creatable_p, 0))) {
if (config->deprecated_create_additions) {
json_deprecated(deprecated_create_additions_warning);
}
@@ -837,7 +846,7 @@ static inline VALUE json_decode_object(JSON_ParserState *state, JSON_ParserConfi
static int match_i(VALUE regexp, VALUE klass, VALUE memo)
{
if (regexp == Qundef) return ST_STOP;
- if (RTEST(rb_funcall(klass, i_json_creatable_p, 0)) &&
RTEST(rb_funcall(regexp, i_match, 1, rb_ary_entry(memo, 0)))) {
rb_ary_push(memo, klass);
return ST_STOP;