Early out checks for zero size were skipping the validation.
Change-Id: I1d8173146117be5a7a3330cf6eae46c2ef8231ff
Reviewed-on: https://swiftshader-review.googlesource.com/5093
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
"GLsizei height = %d, GLint border = %d, GLsizei imageSize = %d, const GLvoid* data = %p)",\r
target, level, internalformat, width, height, border, imageSize, data);\r
\r
- if(!validImageSize(level, width, height) || border != 0 || imageSize < 0)\r
+ if(level < 0 || level >= es1::IMPLEMENTATION_MAX_TEXTURE_LEVELS)\r
+ {\r
+ return error(GL_INVALID_VALUE);\r
+ }\r
+\r
+ if(!validImageSize(level, width, height) || imageSize < 0)\r
{\r
return error(GL_INVALID_VALUE);\r
}\r
\r
if(context)\r
{\r
- if(level > es1::IMPLEMENTATION_MAX_TEXTURE_LEVELS)\r
- {\r
- return error(GL_INVALID_VALUE);\r
- }\r
-\r
switch(target)\r
{\r
case GL_TEXTURE_2D:\r
return error(GL_INVALID_ENUM);\r
}\r
\r
+ if(level < 0 || level >= es1::IMPLEMENTATION_MAX_TEXTURE_LEVELS)\r
+ {\r
+ return error(GL_INVALID_VALUE);\r
+ }\r
+\r
if(xoffset < 0 || yoffset < 0 || !validImageSize(level, width, height) || imageSize < 0)\r
{\r
return error(GL_INVALID_VALUE);\r
return error(GL_INVALID_ENUM);\r
}\r
\r
- if(width == 0 || height == 0 || data == NULL)\r
+ if(width == 0 || height == 0 || !data)\r
{\r
return;\r
}\r
\r
if(context)\r
{\r
- if(level > es1::IMPLEMENTATION_MAX_TEXTURE_LEVELS)\r
- {\r
- return error(GL_INVALID_VALUE);\r
- }\r
-\r
if(imageSize != egl::ComputeCompressedSize(width, height, format))\r
{\r
return error(GL_INVALID_VALUE);\r
return error(GL_INVALID_ENUM);\r
}\r
\r
- if(level < 0 || xoffset < 0 || yoffset < 0 || width < 0 || height < 0)\r
+ if(level < 0 || level >= es1::IMPLEMENTATION_MAX_TEXTURE_LEVELS)\r
+ {\r
+ return error(GL_INVALID_VALUE);\r
+ }\r
+\r
+ if(xoffset < 0 || yoffset < 0 || width < 0 || height < 0)\r
{\r
return error(GL_INVALID_VALUE);\r
}\r
\r
if(context)\r
{\r
- if(level > es1::IMPLEMENTATION_MAX_TEXTURE_LEVELS)\r
- {\r
- return error(GL_INVALID_VALUE);\r
- }\r
\r
es1::Framebuffer *framebuffer = context->getFramebuffer();\r
\r
return error(GL_INVALID_ENUM);\r
}\r
\r
- if(level < 0 || xoffset < 0 || yoffset < 0 || width < 0 || height < 0)\r
+ if(level < 0 || level >= es1::IMPLEMENTATION_MAX_TEXTURE_LEVELS)\r
+ {\r
+ return error(GL_INVALID_VALUE);\r
+ }\r
+\r
+ if(xoffset < 0 || yoffset < 0 || width < 0 || height < 0)\r
{\r
return error(GL_INVALID_VALUE);\r
}\r
return error(GL_INVALID_ENUM);\r
}\r
\r
- if(width == 0 || height == 0 || pixels == NULL)\r
+ if(width == 0 || height == 0 || !pixels)\r
{\r
return;\r
}\r
\r
if(context)\r
{\r
- if(level > es1::IMPLEMENTATION_MAX_TEXTURE_LEVELS)\r
- {\r
- return error(GL_INVALID_VALUE);\r
- }\r
-\r
if(target == GL_TEXTURE_2D)\r
{\r
es1::Texture2D *texture = context->getTexture2D();\r
return error(GL_INVALID_ENUM);\r
}\r
\r
+ if(level < 0 || level >= es2::IMPLEMENTATION_MAX_TEXTURE_LEVELS)\r
+ {\r
+ return error(GL_INVALID_VALUE);\r
+ }\r
+\r
if(xoffset < 0 || yoffset < 0 || !validImageSize(level, width, height) || imageSize < 0)\r
{\r
return error(GL_INVALID_VALUE);\r
return error(validationError);\r
}\r
\r
- if(width == 0 || height == 0 || data == NULL)\r
+ if(width == 0 || height == 0 || !data)\r
{\r
return;\r
}\r
\r
if(context)\r
{\r
- if(level >= es2::IMPLEMENTATION_MAX_TEXTURE_LEVELS)\r
- {\r
- return error(GL_INVALID_VALUE);\r
- }\r
-\r
if(imageSize != egl::ComputeCompressedSize(width, height, format))\r
{\r
return error(GL_INVALID_VALUE);\r
return error(GL_INVALID_ENUM);\r
}\r
\r
- if(level < 0 || xoffset < 0 || yoffset < 0 || width < 0 || height < 0)\r
+ if(level < 0 || level >= es2::IMPLEMENTATION_MAX_TEXTURE_LEVELS)\r
+ {\r
+ return error(GL_INVALID_VALUE);\r
+ }\r
+\r
+ if(xoffset < 0 || yoffset < 0 || width < 0 || height < 0)\r
{\r
return error(GL_INVALID_VALUE);\r
}\r
\r
if(context)\r
{\r
- if(level >= es2::IMPLEMENTATION_MAX_TEXTURE_LEVELS)\r
- {\r
- return error(GL_INVALID_VALUE);\r
- }\r
-\r
es2::Framebuffer *framebuffer = context->getReadFramebuffer();\r
\r
if(framebuffer->completeness() != GL_FRAMEBUFFER_COMPLETE)\r
return error(GL_INVALID_OPERATION);\r
}\r
\r
- es2::Texture *texture = NULL;\r
+ es2::Texture *texture = nullptr;\r
\r
if(target == GL_TEXTURE_2D)\r
{\r
return error(GL_INVALID_ENUM);\r
}\r
\r
- if(level < 0 || xoffset < 0 || yoffset < 0 || width < 0 || height < 0)\r
+ if(level < 0 || level >= es2::IMPLEMENTATION_MAX_TEXTURE_LEVELS)\r
+ {\r
+ return error(GL_INVALID_VALUE);\r
+ }\r
+\r
+ if(xoffset < 0 || yoffset < 0 || width < 0 || height < 0)\r
{\r
return error(GL_INVALID_VALUE);\r
}\r
return error(GL_INVALID_ENUM);\r
}\r
\r
- if(width == 0 || height == 0 || pixels == NULL)\r
+ if(width == 0 || height == 0 || !pixels)\r
{\r
return;\r
}\r
\r
if(context)\r
{\r
- if(level >= es2::IMPLEMENTATION_MAX_TEXTURE_LEVELS)\r
- {\r
- return error(GL_INVALID_VALUE);\r
- }\r
-\r
GLenum sizedInternalFormat = GetSizedInternalFormat(format, type);\r
\r
if(target == GL_TEXTURE_2D)\r
return error(GL_INVALID_ENUM);\r
}\r
\r
+ if(level < 0 || level >= es2::IMPLEMENTATION_MAX_TEXTURE_LEVELS)\r
+ {\r
+ return error(GL_INVALID_VALUE);\r
+ }\r
+\r
if(xoffset < 0 || yoffset < 0 || zoffset < 0 || !validImageSize(level, width, height) || depth < 0 || imageSize < 0)\r
{\r
return error(GL_INVALID_VALUE);\r
return error(validationError);\r
}\r
\r
- if(width == 0 || height == 0 || depth == 0 || data == NULL)\r
+ if(width == 0 || height == 0 || depth == 0 || !data)\r
{\r
return;\r
}\r
return error(GL_INVALID_ENUM);\r
}\r
\r
+ if(level < 0 || level >= es2::IMPLEMENTATION_MAX_TEXTURE_LEVELS)\r
+ {\r
+ return error(GL_INVALID_VALUE);\r
+ }\r
+\r
if(xoffset < 0 || yoffset < 0 || zoffset < 0 || !validImageSize(level, width, height) || depth < 0 || imageSize < 0)\r
{\r
return error(GL_INVALID_VALUE);\r
return error(validationError);\r
}\r
\r
- if(width == 0 || height == 0 || depth == 0 || data == NULL)\r
+ if(width == 0 || height == 0 || depth == 0 || !data)\r
{\r
return;\r
}\r