diff options
author | Ilia Mirkin <[email protected]> | 2015-07-22 12:59:46 -0400 |
---|---|---|
committer | Ilia Mirkin <[email protected]> | 2015-07-23 16:22:52 -0400 |
commit | 17f71483698a4e134a0c85ef0aa3da80fdfdb180 (patch) | |
tree | d394e1f40efc1190b56d53fcf790396d50e97c25 /src/mesa/main/texgetimage.c | |
parent | c844afe94eaecc66e00cc4869f700ac1236bdc89 (diff) |
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 <[email protected]>
Reviewed-by: Brian Paul <[email protected]>
Diffstat (limited to 'src/mesa/main/texgetimage.c')
-rw-r--r-- | src/mesa/main/texgetimage.c | 26 |
1 files 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; |