Remove unnecessary dynamic casts #3218
                
     Merged
            
            
          
  Add this suggestion to a batch that can be applied as a single commit.
  This suggestion is invalid because no changes were made to the code.
  Suggestions cannot be applied while the pull request is closed.
  Suggestions cannot be applied while viewing a subset of changes.
  Only one suggestion per line can be applied in a batch.
  Add this suggestion to a batch that can be applied as a single commit.
  Applying suggestions on deleted lines is not supported.
  You must change the existing code in this line in order to create a valid suggestion.
  Outdated suggestions cannot be applied.
  This suggestion has been applied or marked resolved.
  Suggestions cannot be applied from pending reviews.
  Suggestions cannot be applied on multi-line comments.
  Suggestions cannot be applied while the pull request is queued to merge.
  Suggestion cannot be applied right now. Please check back later.
  
    
  
    


what
This short PR removes a number of
dynamic_castcasts in the codebase, some of which are performed twice and could be rewritten to perform the runtime cast only once.why
dynamic_castis performed at runtime and requires inspecting the object's RTTI information to perform the cast. Executing it more than once incurs a bit of a performance cost that could be avoided by rewriting the code snippet. Additionally, the rewritten code is shorter and thus easier to read and maintain.For example (from
src/rule_with_actions.cc):can be rewritten as:
misc
This is part of a series of PRs to improve performance of the library (2/n). Previous: #3164