@@ -15,7 +15,7 @@ use std::{
1515use crate::hir_type::{Type, types};
1616use crate::hir_effect::{Effect, abstract_heaps, effects};
1717use crate::bitset::BitSet;
18- use crate::profile::{ProfiledType, SplatLength, TypeDistributionSummary};
18+ use crate::profile::{ProfiledType, SplatLength, TypeDistributionSummary, PROFILED_IFUNC_BLOCK_HANDLER, PROFILED_PROC_BLOCK_HANDLER };
1919use crate::stats::{Counter, incr_counter};
2020use SendFallbackReason::*;
2121
@@ -8974,7 +8974,7 @@ fn add_iseq_to_hir(
89748974 let obj = summary.bucket(0).class();
89758975 if unsafe { rb_IMEMO_TYPE_P(obj, imemo_iseq) == 1 } {
89768976 fun.count(block, Counter::invokeblock_handler_monomorphic_iseq);
8977- } else if unsafe { rb_IMEMO_TYPE_P( obj, imemo_ifunc) == 1 } {
8977+ } else if obj == PROFILED_IFUNC_BLOCK_HANDLER {
89788978 fun.count(block, Counter::invokeblock_handler_monomorphic_ifunc);
89798979 } else {
89808980 fun.count(block, Counter::invokeblock_handler_monomorphic_other);
@@ -9001,15 +9001,15 @@ fn add_iseq_to_hir(
90019001 let obj = summary.bucket(0).class();
90029002 if unsafe { rb_IMEMO_TYPE_P(obj, imemo_iseq) == 1} {
90039003 fun.count(block, Counter::getblockparamproxy_handler_iseq);
9004- } else if unsafe { rb_IMEMO_TYPE_P( obj, imemo_ifunc) == 1} {
9004+ } else if obj == PROFILED_IFUNC_BLOCK_HANDLER {
90059005 fun.count(block, Counter::getblockparamproxy_handler_ifunc);
90069006 }
90079007 else if obj.nil_p() {
90089008 fun.count(block, Counter::getblockparamproxy_handler_nil);
90099009 }
90109010 else if obj.symbol_p() {
90119011 fun.count(block, Counter::getblockparamproxy_handler_symbol);
9012- } else if unsafe { rb_obj_is_proc( obj).test() } {
9012+ } else if obj == PROFILED_PROC_BLOCK_HANDLER {
90139013 fun.count(block, Counter::getblockparamproxy_handler_proc);
90149014 }
90159015 } else if summary.is_polymorphic() || summary.is_skewed_polymorphic() {
@@ -9699,12 +9699,10 @@ fn add_iseq_to_hir(
96999699 let obj = profiled_type.class();
97009700 if obj.nil_p() {
97019701 Some(Self::Nil)
9702- } else if unsafe {
9703- rb_IMEMO_TYPE_P(obj, imemo_iseq) == 1
9704- || rb_IMEMO_TYPE_P(obj, imemo_ifunc) == 1
9705- } {
9702+ } else if unsafe { rb_IMEMO_TYPE_P(obj, imemo_iseq) == 1 }
9703+ || obj == PROFILED_IFUNC_BLOCK_HANDLER {
97069704 Some(Self::IseqOrIfunc)
9707- } else if unsafe { rb_obj_is_proc( obj).test() } {
9705+ } else if obj == PROFILED_PROC_BLOCK_HANDLER {
97089706 Some(Self::Proc)
97099707 } else {
97109708 None
@@ -10378,7 +10376,7 @@ fn add_iseq_to_hir(
1037810376 });
1037910377
1038010378 let is_ifunc = (flags & (VM_CALL_ARGS_SPLAT | VM_CALL_KW_SPLAT | VM_CALL_KWARG)) == 0
10381- && block_handler_class.is_some_and(|obj| unsafe { rb_IMEMO_TYPE_P( obj, imemo_ifunc) == 1 } );
10379+ && block_handler_class.is_some_and(|obj| obj == PROFILED_IFUNC_BLOCK_HANDLER );
1038210380
1038310381 // Collect the profiled ISEQ blocks that can be invoked directly with a JIT-to-JIT call.
1038410382 let mut fallback_reason = InvokeBlockNotSpecialized;
0 commit comments