From d5ce14af04d706bf5d456e2528efddd496367515 Mon Sep 17 00:00:00 2001 From: Heeyong Song Date: Thu, 1 Apr 2021 10:40:05 +0900 Subject: [PATCH] [Tizen] Fix Coverity issue Change-Id: I364b7dc968fbf3c3b6707d9f8b233f058710c484 --- .../gles-impl/gles-graphics-reflection.cpp | 28 +++++++++++++++------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/dali/internal/graphics/gles-impl/gles-graphics-reflection.cpp b/dali/internal/graphics/gles-impl/gles-graphics-reflection.cpp index 43420ad..2213fc0 100644 --- a/dali/internal/graphics/gles-impl/gles-graphics-reflection.cpp +++ b/dali/internal/graphics/gles-impl/gles-graphics-reflection.cpp @@ -219,19 +219,25 @@ void Reflection::BuildUniformReflection() } else { - uint32_t previousUniformLocation = mDefaultUniformBlock.members[i - 1].location; - auto previousUniform = std::find_if(mStandaloneUniformExtraInfos.begin(), mStandaloneUniformExtraInfos.end(), [&previousUniformLocation](const UniformExtraInfo& iter) { return iter.location == previousUniformLocation; }); - mDefaultUniformBlock.members[i].offset = mDefaultUniformBlock.members[i - 1].offset + (previousUniform->size * previousUniform->arraySize); - mStandaloneUniformExtraInfos[i].offset = mDefaultUniformBlock.members[i].offset; + uint32_t previousUniformLocation = mDefaultUniformBlock.members[i - 1].location; + auto previousUniform = std::find_if(mStandaloneUniformExtraInfos.begin(), mStandaloneUniformExtraInfos.end(), [&previousUniformLocation](const UniformExtraInfo& iter) { return iter.location == previousUniformLocation; }); + if(previousUniform != mStandaloneUniformExtraInfos.end()) + { + mDefaultUniformBlock.members[i].offset = mDefaultUniformBlock.members[i - 1].offset + (previousUniform->size * previousUniform->arraySize); + mStandaloneUniformExtraInfos[i].offset = mDefaultUniformBlock.members[i].offset; + } } } if(mDefaultUniformBlock.members.size() > 0) { - uint32_t lastUniformLocation = mDefaultUniformBlock.members.back().location; - auto lastUniform = std::find_if(mStandaloneUniformExtraInfos.begin(), mStandaloneUniformExtraInfos.end(), [&lastUniformLocation](const UniformExtraInfo& iter) { return iter.location == lastUniformLocation; }); - mDefaultUniformBlock.size = mDefaultUniformBlock.members.back().offset + (lastUniform->size * lastUniform->arraySize); - mUniformBlocks.push_back(mDefaultUniformBlock); + uint32_t lastUniformLocation = mDefaultUniformBlock.members.back().location; + auto lastUniform = std::find_if(mStandaloneUniformExtraInfos.begin(), mStandaloneUniformExtraInfos.end(), [&lastUniformLocation](const UniformExtraInfo& iter) { return iter.location == lastUniformLocation; }); + if(lastUniform != mStandaloneUniformExtraInfos.end()) + { + mDefaultUniformBlock.size = mDefaultUniformBlock.members.back().offset + (lastUniform->size * lastUniform->arraySize); + mUniformBlocks.push_back(mDefaultUniformBlock); + } } else { @@ -285,6 +291,12 @@ void Reflection::BuildUniformBlockReflection() GLenum type; gl->GetActiveUniform(glProgram, uniIndex, maxUniLen, &length, &size, &type, uniformName); + + if(!uniformName) + { + continue; + } + int location = gl->GetUniformLocation(glProgram, uniformName); Dali::Graphics::UniformInfo uniform; -- 2.7.4