From 17f71483698a4e134a0c85ef0aa3da80fdfdb180 Mon Sep 17 00:00:00 2001 From: Ilia Mirkin Date: Wed, 22 Jul 2015 12:59:46 -0400 Subject: [PATCH] mesa: rearrange texture error checking order This moves the width/height/depth == 0 check to the front and avoids doing any other checking when that is the case. Also moves the dimensions check after the format/type checks so that we don't bail out with success on a width/height/depth == 0 request when the format/type don't match. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91425 Signed-off-by: Ilia Mirkin Reviewed-by: Brian Paul --- src/mesa/main/texgetimage.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/mesa/main/texgetimage.c b/src/mesa/main/texgetimage.c index 2f35ac6d77a..cdbd6187708 100644 --- a/src/mesa/main/texgetimage.c +++ b/src/mesa/main/texgetimage.c @@ -928,6 +928,13 @@ dimensions_error_check(struct gl_context *ctx, const struct gl_texture_image *texImage; int i; + if (width == 0 || height == 0 || depth == 0) { + /* Not an error, but nothing to do. Return 'true' so that the + * caller simply returns. + */ + return true; + } + if (xoffset < 0) { _mesa_error(ctx, GL_INVALID_VALUE, "%s(xoffset = %d)", caller, xoffset); return true; @@ -1079,13 +1086,6 @@ dimensions_error_check(struct gl_context *ctx, } } - if (width == 0 || height == 0 || depth == 0) { - /* Not an error, but nothing to do. Return 'true' so that the - * caller simply returns. - */ - return true; - } - return false; } @@ -1164,18 +1164,18 @@ getteximage_error_check(struct gl_context *ctx, return true; } - if (dimensions_error_check(ctx, texObj, target, level, - xoffset, yoffset, zoffset, - width, height, depth, caller)) { - return true; - } - err = _mesa_error_check_format_and_type(ctx, format, type); if (err != GL_NO_ERROR) { _mesa_error(ctx, err, "%s(format/type)", caller); return true; } + if (dimensions_error_check(ctx, texObj, target, level, + xoffset, yoffset, zoffset, + width, height, depth, caller)) { + return true; + } + if (pbo_error_check(ctx, target, width, height, depth, format, type, bufSize, pixels, caller)) { return true; -- 2.30.2