summaryrefslogtreecommitdiff
path: root/ext/json/parser/parser.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/json/parser/parser.c')
-rw-r--r--ext/json/parser/parser.c22
1 files changed, 11 insertions, 11 deletions
diff --git a/ext/json/parser/parser.c b/ext/json/parser/parser.c
index c0631728c3..6b8164c062 100644
--- a/ext/json/parser/parser.c
+++ b/ext/json/parser/parser.c
@@ -488,7 +488,7 @@ static const rb_data_type_t JSON_Parser_frame_stack_type = {
.dfree = json_frame_stack_free,
.dsize = json_frame_stack_memsize,
},
- .flags = RUBY_TYPED_FREE_IMMEDIATELY | RUBY_TYPED_EMBEDDABLE,
+ .flags = RUBY_TYPED_FREE_IMMEDIATELY | RUBY_TYPED_WB_PROTECTED | RUBY_TYPED_EMBEDDABLE,
};
static json_frame_stack *json_frame_stack_spill(json_frame_stack *old_stack, VALUE *handle, json_frame_stack **stack_ref)
@@ -1489,7 +1489,7 @@ static VALUE json_parse_any(JSON_ParserState *state, JSON_ParserConfig *config)
case JSON_PHASE_OBJECT_KEY: goto JSON_PHASE_OBJECT_KEY;
case JSON_PHASE_OBJECT_COLON: goto JSON_PHASE_OBJECT_COLON;
}
- UNREACHABLE_RETURN(Qundef);
+ JSON_UNREACHABLE_RETURN(Qundef);
JSON_PHASE_DONE: {
// The root document value is parsed; it is the lone survivor on
@@ -1623,10 +1623,10 @@ static VALUE json_parse_any(JSON_ParserState *state, JSON_ParserConfig *config)
case JSON_PHASE_ARRAY_COMMA: goto JSON_PHASE_ARRAY_COMMA;
case JSON_PHASE_OBJECT_COMMA: goto JSON_PHASE_OBJECT_COMMA;
case JSON_PHASE_VALUE: goto JSON_PHASE_VALUE;
- case JSON_PHASE_OBJECT_KEY: UNREACHABLE_RETURN(Qundef);
+ case JSON_PHASE_OBJECT_KEY: JSON_UNREACHABLE_RETURN(Qundef);
case JSON_PHASE_OBJECT_COLON: goto JSON_PHASE_OBJECT_COLON;
}
- UNREACHABLE_RETURN(Qundef);
+ JSON_UNREACHABLE_RETURN(Qundef);
}
JSON_PHASE_OBJECT_KEY: {
@@ -1648,7 +1648,7 @@ static VALUE json_parse_any(JSON_ParserState *state, JSON_ParserConfig *config)
raise_parse_error("expected object key, got: %s", state);
}
}
- UNREACHABLE_RETURN(Qundef);
+ JSON_UNREACHABLE_RETURN(Qundef);
}
JSON_PHASE_OBJECT_COLON: {
@@ -1669,7 +1669,7 @@ static VALUE json_parse_any(JSON_ParserState *state, JSON_ParserConfig *config)
raise_parse_error("expected ':' after object key, got: %s", state);
}
}
- UNREACHABLE_RETURN(Qundef);
+ JSON_UNREACHABLE_RETURN(Qundef);
}
JSON_PHASE_ARRAY_COMMA: {
@@ -1705,13 +1705,13 @@ static VALUE json_parse_any(JSON_ParserState *state, JSON_ParserConfig *config)
case JSON_PHASE_ARRAY_COMMA: goto JSON_PHASE_ARRAY_COMMA;
case JSON_PHASE_OBJECT_COMMA: goto JSON_PHASE_OBJECT_COMMA;
case JSON_PHASE_VALUE: goto JSON_PHASE_VALUE;
- case JSON_PHASE_OBJECT_KEY: UNREACHABLE_RETURN(Qundef);
+ case JSON_PHASE_OBJECT_KEY: JSON_UNREACHABLE_RETURN(Qundef);
case JSON_PHASE_OBJECT_COLON: goto JSON_PHASE_OBJECT_COLON;
}
} else {
raise_parse_error("expected ',' or ']' after array value", state);
}
- UNREACHABLE_RETURN(Qundef);
+ JSON_UNREACHABLE_RETURN(Qundef);
}
JSON_PHASE_OBJECT_COMMA: {
@@ -1754,16 +1754,16 @@ static VALUE json_parse_any(JSON_ParserState *state, JSON_ParserConfig *config)
case JSON_PHASE_ARRAY_COMMA: goto JSON_PHASE_ARRAY_COMMA;
case JSON_PHASE_OBJECT_COMMA: goto JSON_PHASE_OBJECT_COMMA;
case JSON_PHASE_VALUE: goto JSON_PHASE_VALUE;
- case JSON_PHASE_OBJECT_KEY: UNREACHABLE_RETURN(Qundef);
+ case JSON_PHASE_OBJECT_KEY: JSON_UNREACHABLE_RETURN(Qundef);
case JSON_PHASE_OBJECT_COLON: goto JSON_PHASE_OBJECT_COLON;
}
} else {
raise_parse_error("expected ',' or '}' after object value, got: %s", state);
}
- UNREACHABLE_RETURN(Qundef);
+ JSON_UNREACHABLE_RETURN(Qundef);
}
- UNREACHABLE_RETURN(Qundef);
+ JSON_UNREACHABLE_RETURN(Qundef);
}
static void json_ensure_eof(JSON_ParserState *state)