miranda: check request operation instead of using dynamic_cast #2411
+9
−8
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.
For my simulation, approximately 15-20% of CPU time is spent resolving one dynamic_cast in miranda. This dynamic cast does not appear to be necessary because mirandaCPU dispatches GeneratorRequests based on the request's operation.
This patch replaces the dynamic_cast with an operation check and adds an assertion on the MemoryOpRequest's operation type. The assertion ensures a MemoryOpRequest is either READ or WRITE to avoid potential incorrect static_cast'ing into CustomOpRequests.