aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--vm_backtrace.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/vm_backtrace.c b/vm_backtrace.c
index 2414adae6e..551fdad0d1 100644
--- a/vm_backtrace.c
+++ b/vm_backtrace.c
@@ -162,14 +162,13 @@ location_mark_entry(rb_backtrace_location_t *fi)
static size_t
location_memsize(const void *ptr)
{
- /* rb_backtrace_location_t *fi = (rb_backtrace_location_t *)ptr; */
- return sizeof(rb_backtrace_location_t);
+ return 0;
}
static const rb_data_type_t location_data_type = {
"frame_info",
{location_mark, RUBY_TYPED_DEFAULT_FREE, location_memsize,},
- 0, 0, RUBY_TYPED_FREE_IMMEDIATELY | RUBY_TYPED_WB_PROTECTED
+ 0, 0, RUBY_TYPED_FREE_IMMEDIATELY | RUBY_TYPED_WB_PROTECTED | RUBY_TYPED_EMBEDDABLE
};
int
@@ -182,7 +181,7 @@ static inline rb_backtrace_location_t *
location_ptr(VALUE locobj)
{
struct valued_frame_info *vloc;
- GetCoreDataFromValue(locobj, struct valued_frame_info, vloc);
+ TypedData_Get_Struct(locobj, struct valued_frame_info, &location_data_type, vloc);
return vloc->loc;
}