From e385c159da9338b14ab7fb67ce8d8398ab069d5a Mon Sep 17 00:00:00 2001 From: tenderlove Date: Tue, 9 Apr 2019 21:13:32 +0000 Subject: Add error globals to mark list so they don't move JSON gem is referencing constants defined in Ruby then keeping a reference as a global. We need to register these globals so they stay pinned. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67483 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ext/json/parser/parser.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'ext/json/parser') diff --git a/ext/json/parser/parser.c b/ext/json/parser/parser.c index f68676879b..0bd328ca42 100644 --- a/ext/json/parser/parser.c +++ b/ext/json/parser/parser.c @@ -2091,6 +2091,8 @@ void Init_parser(void) cParser = rb_define_class_under(mExt, "Parser", rb_cObject); eParserError = rb_path2class("JSON::ParserError"); eNestingError = rb_path2class("JSON::NestingError"); + rb_gc_register_mark_object(eParserError); + rb_gc_register_mark_object(eNestingError); rb_define_alloc_func(cParser, cJSON_parser_s_allocate); rb_define_method(cParser, "initialize", cParser_initialize, -1); rb_define_method(cParser, "parse", cParser_parse, 0); -- cgit v1.2.3