util/u_format: Assert that format block size is at least 1 byte.
authorVinson Lee <vlee@freedesktop.org>
Sat, 28 Sep 2013 05:42:58 +0000 (22:42 -0700)
committerVinson Lee <vlee@freedesktop.org>
Tue, 1 Oct 2013 04:53:04 +0000 (21:53 -0700)
The block size for all formats is currently at least 1 byte. Add an
assertion for this.

This should silence several Coverity "Division or modulo by zero"
defects.

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
src/gallium/auxiliary/util/u_format.h

index 28527f532add18fb4a40c851f6949b56896111a0..84f16d503d730f9271c3a65a1b7027e6ace33342 100644 (file)
@@ -716,10 +716,15 @@ static INLINE uint
 util_format_get_blocksize(enum pipe_format format)
 {
    uint bits = util_format_get_blocksizebits(format);
+   uint bytes = bits / 8;
 
    assert(bits % 8 == 0);
+   assert(bytes > 0);
+   if (bytes == 0) {
+      bytes = 1;
+   }
 
-   return bits / 8;
+   return bytes;
 }
 
 static INLINE uint