Fixes error handling in ShaderSource
TRAC #11664
Signed-off-by: Nicolas Capens
Signed-off-by: Daniel Koch
Author: Shannon Woods
git-svn-id: https://angleproject.googlecode.com/svn/trunk@135 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/libGLESv2.cpp b/src/libGLESv2/libGLESv2.cpp
index 12fded6..799cedf 100644
--- a/src/libGLESv2/libGLESv2.cpp
+++ b/src/libGLESv2/libGLESv2.cpp
@@ -3225,7 +3225,7 @@
try
{
- if (shader == 0 || count < 0)
+ if (count < 0)
{
return error(GL_INVALID_VALUE);
}
@@ -3238,7 +3238,14 @@
if (!shaderObject)
{
- return error(GL_INVALID_OPERATION);
+ if (context->getProgram(shader))
+ {
+ return error(GL_INVALID_OPERATION);
+ }
+ else
+ {
+ return error(GL_INVALID_VALUE);
+ }
}
shaderObject->setSource(count, string, length);