From 436ab3875707e8ff218cf66309d4e95348700e4f Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Tue, 25 May 2021 22:21:19 +0000 Subject: mark ListenStats in C ext for GC.compact 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/ --- ext/raindrops/linux_inet_diag.c | 1 + 1 file changed, 1 insertion(+) diff --git a/ext/raindrops/linux_inet_diag.c b/ext/raindrops/linux_inet_diag.c index 60c80f1..cabd427 100644 --- a/ext/raindrops/linux_inet_diag.c +++ b/ext/raindrops/linux_inet_diag.c @@ -696,6 +696,7 @@ void Init_raindrops_linux_inet_diag(void) rb_define_singleton_method(cIDSock, "new", ids_s_new, 0); cListenStats = rb_const_get(cRaindrops, rb_intern("ListenStats")); + rb_gc_register_mark_object(cListenStats); /* pin */ rb_define_module_function(mLinux, "tcp_listener_stats", tcp_listener_stats, -1); -- cgit v1.2.3-24-ge0c7