about summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <bofh@yhbt.net>2021-05-24 21:56:29 +0000
committerEric Wong <bofh@yhbt.net>2021-05-24 21:56:29 +0000
commit87dd5946635d91acb7d28ef43acbc4c72a717fa9 (patch)
tree9166261fd7bc7481d80a46ddd74345ec31e7eb15
parent7a24e31fb709f913e6b8a0eaedc885c96b1a7938 (diff)
downloadclogger-87dd5946635d91acb7d28ef43acbc4c72a717fa9.tar.gz
With GC.compact in Ruby 3.x, Ruby-defined constants need to be
explicitly marked to prevent movement:

Link: https://yhbt.net/kgio-public/CAAvYYt5Z5f2rMuXO5DMpR1-6uRvu_gXKDvqcyoZ+oNcLiTH39g@mail.gmail.com/T/
-rw-r--r--ext/clogger_ext/clogger.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/ext/clogger_ext/clogger.c b/ext/clogger_ext/clogger.c
index a3de120..079817c 100644
--- a/ext/clogger_ext/clogger.c
+++ b/ext/clogger_ext/clogger.c
@@ -1104,6 +1104,7 @@ void Init_clogger_ext(void)
         tmp = rb_const_get(rb_cObject, rb_intern("Rack"));
         tmp = rb_const_get(tmp, rb_intern("Utils"));
         cHeaderHash = rb_const_get(tmp, rb_intern("HeaderHash"));
+        rb_ary_push(mark_ary, cHeaderHash);
 
         rb_obj_freeze(mark_ary);
 }