Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Description
This pullRequest resolves a read access violation crashing the game that occurs when respawning the Wither boss in the End after kill the dragoon.
Changes
Previous Behavior
When respawning the Wither boss in the End, the game would crash with a read access violation exception if a
MultiEntityMobPartreceived damage.Root Cause
In
MultiEntityMobPart.cppat line 36, the code callsparentMob.lock()->hurt(...). When respawning the Wither in this specific scenario,parentMob.lock()returns anullptr, causing a crash when the code attempts to immediately dereference it.New Behavior
The game no longer crashes when respawning the Wither boss in the End. The damage event is handled safely even if the parent mob pointer is momentarily invalid.
Fix Implementation
Added a if statement to check for the
std::shared_ptrreturned byparentMob.lock()inMultiEntityMobPart::hurt()if will give Exception it will avoid that with return falseAI Use Disclosure
No using for AI
Related Issues