Add a more specific RunFinalizer signature for Summer Vacation! Scramble #199
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.
The "Test Game" signature is a bit general that it matched
MS.Internal.Xml.Cache.XPathDocumentNavigator$$MoveToId
in Summer Vacation! Scramble(SVS) assembly, causing NULL finalier access crashes due to HasFinalize not being handled.The one actually matched RunFinalizer in SVS is "V Rising" signature, though it's listed after the "Test Game" signature.
Although a simple reorder can fix the issue for SVS, both signatures mentioned are quiet general so this could breaks other games relying on this matching order, otherwise the same crash can happen due to hooking on the wrong location.
Thus I instead add a more specific signature that should solely matches RunFinalizer on SVS or other games with similar compilation options before the too general one.
This supersedes #196 and is less aggressive. The added signature is the most specific one so it should not match functions other than RunFinalizer in other games.
Tested working on SVS v1.1.3 and verified that this signature matches RunFinalizer on SVS v1.0.2, v1.1.1 and v1.1.2 assembly.