@@ -17,11 +17,11 @@ use rb_sys::{
1717 rb_define_method, rb_eIOError, rb_event_flag_t, rb_event_hook_flag_t, rb_event_hook_func_t,
1818 rb_funcall, rb_id2name, rb_id2sym, rb_intern, rb_method_boundp, rb_num2dbl, rb_num2long,
1919 rb_obj_classname, rb_obj_is_kind_of, rb_protect, rb_raise, rb_remove_event_hook_with_data,
20- rb_sym2id, rb_trace_arg_t, rb_tracearg_binding, rb_tracearg_callee_id, rb_tracearg_event_flag ,
21- rb_tracearg_lineno, rb_tracearg_path, rb_tracearg_raised_exception, rb_tracearg_return_value ,
22- rb_tracearg_self, Qfalse , Qnil , Qtrue , ID , NIL_P , RARRAY_CONST_PTR , RARRAY_LEN ,
23- RB_FLOAT_TYPE_P , RB_INTEGER_TYPE_P , RB_SYMBOL_P , RB_TYPE_P , RSTRING_LEN , RSTRING_PTR ,
24- RUBY_EVENT_CALL , RUBY_EVENT_LINE , RUBY_EVENT_RAISE , RUBY_EVENT_RETURN , VALUE ,
20+ rb_set_errinfo , rb_sym2id, rb_trace_arg_t, rb_tracearg_binding, rb_tracearg_callee_id,
21+ rb_tracearg_event_flag , rb_tracearg_lineno, rb_tracearg_path, rb_tracearg_raised_exception,
22+ rb_tracearg_return_value , rb_tracearg_self, Qfalse , Qnil , Qtrue , ID , NIL_P , RARRAY_CONST_PTR ,
23+ RARRAY_LEN , RB_FLOAT_TYPE_P , RB_INTEGER_TYPE_P , RB_SYMBOL_P , RB_TYPE_P , RSTRING_LEN ,
24+ RSTRING_PTR , RUBY_EVENT_CALL , RUBY_EVENT_LINE , RUBY_EVENT_RAISE , RUBY_EVENT_RETURN , VALUE ,
2525} ;
2626use runtime_tracing:: {
2727 create_trace_writer, CallRecord , EventLogKind , FieldTypeRecord , FullValueRecord , Line ,
@@ -316,6 +316,7 @@ unsafe fn value_to_string_exception_safe(recorder: &Recorder, val: VALUE) -> Str
316316 let data = ( val, recorder. id . to_s ) ;
317317 let str_val = rb_protect ( Some ( call_to_s) , & data as * const _ as VALUE , & mut state) ;
318318 if state != 0 {
319+ rb_set_errinfo ( Qnil . into ( ) ) ;
319320 String :: default ( )
320321 } else {
321322 rstring_lossy ( str_val)
0 commit comments