Fixed outstanding null dereferencing errors with -fanalyzer on modern #3165
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
After this, all that stderr outputs are some palette issues with some item sprites that I'll PR later tonight probably.
There may still be additional fixes needed for other arguments that MGriffin was toying around with, but I think this is a good start and gets the core issues out of the way.
The change that looks big is the one in pokemon.c, but it's relatively simple - just separates the encrypted and unencrypted boxmon data behind an if/else instead of just playing fast and loose with the substruct pointers. The rest is relatively simple, but some of it revolves around some messy derefencing that we could clean up a bit better eventually. For the time being, some of these just check for null in the critical sections and output a warning via debug logging, which is at least safer than previously and keeps the analyzer off our backs.
I did some minimal testing, but let me know if you spot any issues.
Discord contact info
crater.