diff --git a/external/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp b/external/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp index 0243acf..0e73b9d 100644 --- a/external/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp +++ b/external/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp @@ -2082,7 +2082,8 @@ static void s_unUseCurrentProgram() { if (!localCurrentProgram) return; ObjectDataPtr objData = ctx->shareGroup()->getObjectData(SHADER,localCurrentProgram); - SET_ERROR_IF(!objData.Ptr() || objData.Ptr()->getDataType()!=PROGRAM_DATA,GL_INVALID_OPERATION); + if (!objData) return; + SET_ERROR_IF(objData.Ptr()->getDataType()!=PROGRAM_DATA,GL_INVALID_OPERATION); ProgramData* programData = (ProgramData*)objData.Ptr(); programData->setInUse(false); if (programData->getDeleteStatus()) { glDeleteProgram(localCurrentProgram); } @@ -2094,7 +2095,7 @@ GL_APICALL void GL_APIENTRY glUseProgram(GLuint program){ const GLuint globalProgramName = ctx->shareGroup()->getGlobalName(SHADER,program); SET_ERROR_IF(program!=0 && globalProgramName==0,GL_INVALID_VALUE); ObjectDataPtr objData = ctx->shareGroup()->getObjectData(SHADER,program); - SET_ERROR_IF(!objData.Ptr() || (objData.Ptr()->getDataType()!=PROGRAM_DATA),GL_INVALID_OPERATION); + SET_ERROR_IF(objData.Ptr() && (objData.Ptr()->getDataType()!=PROGRAM_DATA),GL_INVALID_OPERATION); s_unUseCurrentProgram();