@@ -180,14 +180,18 @@ internal void InvokeNamedMessage(ulong hash, ulong sender, FastBufferReader read
180180 // We dont know what size to use. Try every (more collision prone)
181181 if ( m_NamedMessageHandlers32 . TryGetValue ( hash , out HandleNamedMessageDelegate messageHandler32 ) )
182182 {
183+ // handler can remove itself, cache the name for metrics
184+ var messageName = m_MessageHandlerNameLookup32 [ hash ] ;
183185 messageHandler32 ( sender , reader ) ;
184- m_NetworkManager . NetworkMetrics . TrackNamedMessageReceived ( sender , m_MessageHandlerNameLookup32 [ hash ] , bytesCount ) ;
186+ m_NetworkManager . NetworkMetrics . TrackNamedMessageReceived ( sender , messageName , bytesCount ) ;
185187 }
186188
187189 if ( m_NamedMessageHandlers64 . TryGetValue ( hash , out HandleNamedMessageDelegate messageHandler64 ) )
188190 {
191+ // handler can remove itself, cache the name for metrics
192+ var messageName = m_MessageHandlerNameLookup64 [ hash ] ;
189193 messageHandler64 ( sender , reader ) ;
190- m_NetworkManager . NetworkMetrics . TrackNamedMessageReceived ( sender , m_MessageHandlerNameLookup64 [ hash ] , bytesCount ) ;
194+ m_NetworkManager . NetworkMetrics . TrackNamedMessageReceived ( sender , messageName , bytesCount ) ;
191195 }
192196 }
193197 else
@@ -198,15 +202,19 @@ internal void InvokeNamedMessage(ulong hash, ulong sender, FastBufferReader read
198202 case HashSize . VarIntFourBytes :
199203 if ( m_NamedMessageHandlers32 . TryGetValue ( hash , out HandleNamedMessageDelegate messageHandler32 ) )
200204 {
205+ // handler can remove itself, cache the name for metrics
206+ var messageName = m_MessageHandlerNameLookup32 [ hash ] ;
201207 messageHandler32 ( sender , reader ) ;
202- m_NetworkManager . NetworkMetrics . TrackNamedMessageReceived ( sender , m_MessageHandlerNameLookup32 [ hash ] , bytesCount ) ;
208+ m_NetworkManager . NetworkMetrics . TrackNamedMessageReceived ( sender , messageName , bytesCount ) ;
203209 }
204210 break ;
205211 case HashSize . VarIntEightBytes :
206212 if ( m_NamedMessageHandlers64 . TryGetValue ( hash , out HandleNamedMessageDelegate messageHandler64 ) )
207213 {
214+ // handler can remove itself, cache the name for metrics
215+ var messageName = m_MessageHandlerNameLookup64 [ hash ] ;
208216 messageHandler64 ( sender , reader ) ;
209- m_NetworkManager . NetworkMetrics . TrackNamedMessageReceived ( sender , m_MessageHandlerNameLookup64 [ hash ] , bytesCount ) ;
217+ m_NetworkManager . NetworkMetrics . TrackNamedMessageReceived ( sender , messageName , bytesCount ) ;
210218 }
211219 break ;
212220 }
0 commit comments