Skip to content

Commit 6ce76f3

Browse files
committed
refactor: instead of passing to_s_id: ID parameter to value_to_string_safe, pass a Recorder structure, which contains all the interned IDs
1 parent 1fe0b46 commit 6ce76f3

File tree

1 file changed

+3
-3
lines changed
  • gems/codetracer-ruby-recorder/ext/native_tracer/src

1 file changed

+3
-3
lines changed

gems/codetracer-ruby-recorder/ext/native_tracer/src/lib.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -301,15 +301,15 @@ unsafe extern "C" fn call_to_s(arg: VALUE) -> VALUE {
301301
rb_funcall(data.0, data.1, 0)
302302
}
303303

304-
unsafe fn value_to_string_safe(val: VALUE, to_s_id: ID) -> Option<String> {
304+
unsafe fn value_to_string_safe(recorder: &Recorder, val: VALUE) -> Option<String> {
305305
if RB_TYPE_P(val, rb_sys::ruby_value_type::RUBY_T_STRING) {
306306
let ptr = RSTRING_PTR(val);
307307
let len = RSTRING_LEN(val) as usize;
308308
let slice = std::slice::from_raw_parts(ptr as *const u8, len);
309309
return Some(String::from_utf8_lossy(slice).to_string());
310310
}
311311
let mut state: c_int = 0;
312-
let data = (val, to_s_id);
312+
let data = (val, recorder.to_s_id);
313313
let str_val = rb_protect(Some(call_to_s), &data as *const _ as VALUE, &mut state);
314314
if state != 0 {
315315
return None;
@@ -808,7 +808,7 @@ unsafe extern "C" fn event_hook_raw(data: VALUE, arg: *mut rb_trace_arg_t) {
808808

809809
let class_name =
810810
cstr_to_string(rb_obj_classname(self_val)).unwrap_or_else(|| "Object".to_string());
811-
let text = value_to_string_safe(self_val, recorder.to_s_id).unwrap_or_default();
811+
let text = value_to_string_safe(recorder, self_val).unwrap_or_default();
812812
let self_type =
813813
TraceWriter::ensure_type_id(&mut *recorder.tracer, TypeKind::Raw, &class_name);
814814
let self_rec = ValueRecord::Raw {

0 commit comments

Comments
 (0)