@@ -1117,15 +1117,18 @@ rb_tracearg_self(rb_trace_arg_t *trace_arg)
11171117 return trace_arg -> self ;
11181118}
11191119
1120- VALUE
1121- rb_tracearg_return_value (rb_trace_arg_t * trace_arg )
1120+ static void
1121+ check_event_support (rb_trace_arg_t * trace_arg , rb_event_flag_t supported )
11221122{
1123- if (trace_arg -> event & (RUBY_EVENT_RETURN | RUBY_EVENT_C_RETURN | RUBY_EVENT_B_RETURN )) {
1124- /* ok */
1125- }
1126- else {
1123+ if (!(trace_arg -> event & supported )) {
11271124 rb_raise (rb_eRuntimeError , "not supported by this event" );
11281125 }
1126+ }
1127+
1128+ VALUE
1129+ rb_tracearg_return_value (rb_trace_arg_t * trace_arg )
1130+ {
1131+ check_event_support (trace_arg , RUBY_EVENT_RETURN | RUBY_EVENT_C_RETURN | RUBY_EVENT_B_RETURN );
11291132 if (UNDEF_P (trace_arg -> data )) {
11301133 rb_bug ("rb_tracearg_return_value: unreachable" );
11311134 }
@@ -1135,12 +1138,7 @@ rb_tracearg_return_value(rb_trace_arg_t *trace_arg)
11351138VALUE
11361139rb_tracearg_raised_exception (rb_trace_arg_t * trace_arg )
11371140{
1138- if (trace_arg -> event & (RUBY_EVENT_RAISE | RUBY_EVENT_RESCUE )) {
1139- /* ok */
1140- }
1141- else {
1142- rb_raise (rb_eRuntimeError , "not supported by this event" );
1143- }
1141+ check_event_support (trace_arg , RUBY_EVENT_RAISE | RUBY_EVENT_RESCUE );
11441142 if (UNDEF_P (trace_arg -> data )) {
11451143 rb_bug ("rb_tracearg_raised_exception: unreachable" );
11461144 }
@@ -1152,12 +1150,7 @@ rb_tracearg_eval_script(rb_trace_arg_t *trace_arg)
11521150{
11531151 VALUE data = trace_arg -> data ;
11541152
1155- if (trace_arg -> event & (RUBY_EVENT_SCRIPT_COMPILED )) {
1156- /* ok */
1157- }
1158- else {
1159- rb_raise (rb_eRuntimeError , "not supported by this event" );
1160- }
1153+ check_event_support (trace_arg , RUBY_EVENT_SCRIPT_COMPILED );
11611154 if (UNDEF_P (data )) {
11621155 rb_bug ("rb_tracearg_eval_script: unreachable" );
11631156 }
@@ -1176,12 +1169,7 @@ rb_tracearg_instruction_sequence(rb_trace_arg_t *trace_arg)
11761169{
11771170 VALUE data = trace_arg -> data ;
11781171
1179- if (trace_arg -> event & (RUBY_EVENT_SCRIPT_COMPILED )) {
1180- /* ok */
1181- }
1182- else {
1183- rb_raise (rb_eRuntimeError , "not supported by this event" );
1184- }
1172+ check_event_support (trace_arg , RUBY_EVENT_SCRIPT_COMPILED );
11851173 if (UNDEF_P (data )) {
11861174 rb_bug ("rb_tracearg_instruction_sequence: unreachable" );
11871175 }
@@ -1201,12 +1189,7 @@ rb_tracearg_instruction_sequence(rb_trace_arg_t *trace_arg)
12011189VALUE
12021190rb_tracearg_object (rb_trace_arg_t * trace_arg )
12031191{
1204- if (trace_arg -> event & (RUBY_INTERNAL_EVENT_NEWOBJ | RUBY_INTERNAL_EVENT_FREEOBJ )) {
1205- /* ok */
1206- }
1207- else {
1208- rb_raise (rb_eRuntimeError , "not supported by this event" );
1209- }
1192+ check_event_support (trace_arg , RUBY_INTERNAL_EVENT_NEWOBJ | RUBY_INTERNAL_EVENT_FREEOBJ );
12101193 if (UNDEF_P (trace_arg -> data )) {
12111194 rb_bug ("rb_tracearg_object: unreachable" );
12121195 }
0 commit comments