From 3e0eea644f31b0a80da143c18149c750712d833d Mon Sep 17 00:00:00 2001 From: Peter Zhu Date: Sat, 23 Mar 2024 12:08:48 -0400 Subject: [PATCH] Don't set RUBY_TYPED_EMBEDDABLE flag on backtrace --- vm_backtrace.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vm_backtrace.c b/vm_backtrace.c index 3fbb8d1e3b..6f4379ad23 100644 --- a/vm_backtrace.c +++ b/vm_backtrace.c @@ -540,7 +540,10 @@ static const rb_data_type_t backtrace_data_type = { NULL, // No external memory to report, backtrace_update, }, - 0, 0, RUBY_TYPED_FREE_IMMEDIATELY | RUBY_TYPED_WB_PROTECTED | RUBY_TYPED_EMBEDDABLE + /* Cannot set the RUBY_TYPED_EMBEDDABLE flag because the loc of frame_info + * points elements in the backtrace array. This can cause the loc to become + * incorrect if this backtrace object is moved by compaction. */ + 0, 0, RUBY_TYPED_FREE_IMMEDIATELY | RUBY_TYPED_WB_PROTECTED }; int