summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--vm_backtrace.c5
1 files changed, 4 insertions, 1 deletions
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