mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-02-21 00:39:58 +00:00
Consistently avoid null pointer dereferencing in postprocessor (#7587)
This commit is contained in:
parent
38eb741bfd
commit
0f7b4fc6e6
@ -111,6 +111,7 @@
|
||||
Bug #7557: Terrain::ChunkManager::createChunk is called twice for the same position, lod on initial loading
|
||||
Bug #7573: Drain Fatigue can't bring fatigue below zero by default
|
||||
Bug #7585: Difference in interior lighting between OpenMW with legacy lighting method enabled and vanilla Morrowind
|
||||
Bug #7587: Quick load related crash
|
||||
Bug #7603: Scripts menu size is not updated properly
|
||||
Bug #7604: Goblins Grunt becomes idle once injured
|
||||
Bug #7609: ForceGreeting should not open dialogue for werewolves
|
||||
|
@ -346,7 +346,7 @@ namespace MWRender
|
||||
|
||||
for (auto& technique : mTechniques)
|
||||
{
|
||||
if (technique->getStatus() == fx::Technique::Status::File_Not_exists)
|
||||
if (!technique || technique->getStatus() == fx::Technique::Status::File_Not_exists)
|
||||
continue;
|
||||
|
||||
const auto lastWriteTime = std::filesystem::last_write_time(mTechniqueFileMap[technique->getName()]);
|
||||
@ -564,7 +564,7 @@ namespace MWRender
|
||||
|
||||
for (const auto& technique : mTechniques)
|
||||
{
|
||||
if (!technique->isValid())
|
||||
if (!technique || !technique->isValid())
|
||||
continue;
|
||||
|
||||
if (technique->getGLSLVersion() > mGLSLVersion)
|
||||
@ -718,7 +718,7 @@ namespace MWRender
|
||||
|
||||
PostProcessor::Status PostProcessor::disableTechnique(std::shared_ptr<fx::Technique> technique, bool dirty)
|
||||
{
|
||||
if (technique->getLocked())
|
||||
if (!technique || technique->getLocked())
|
||||
return Status_Error;
|
||||
|
||||
auto it = std::find(mTechniques.begin(), mTechniques.end(), technique);
|
||||
@ -734,6 +734,9 @@ namespace MWRender
|
||||
|
||||
bool PostProcessor::isTechniqueEnabled(const std::shared_ptr<fx::Technique>& technique) const
|
||||
{
|
||||
if (!technique)
|
||||
return false;
|
||||
|
||||
if (auto it = std::find(mTechniques.begin(), mTechniques.end(), technique); it == mTechniques.end())
|
||||
return false;
|
||||
|
||||
@ -815,7 +818,7 @@ namespace MWRender
|
||||
void PostProcessor::disableDynamicShaders()
|
||||
{
|
||||
for (auto& technique : mTechniques)
|
||||
if (technique->getDynamic())
|
||||
if (technique && technique->getDynamic())
|
||||
disableTechnique(technique);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user