diff options
author | Luca Barbieri <[email protected]> | 2010-08-11 15:59:43 +0200 |
---|---|---|
committer | Luca Barbieri <[email protected]> | 2010-08-11 16:27:57 +0200 |
commit | 16b45ca7cefb3432b4133fe9d0b1dbfe3f286131 (patch) | |
tree | 5bbdd946fbba56a2787d256335500849947c8056 /src/gallium | |
parent | deb809ec98664257ed215e75554e1a80c149c851 (diff) |
translate_generic: return NULL instead of assert(0) if format not supported
This gives the caller a chance to recover (or crash anyway otherwise).
Diffstat (limited to 'src/gallium')
-rw-r--r-- | src/gallium/auxiliary/translate/translate_generic.c | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/src/gallium/auxiliary/translate/translate_generic.c b/src/gallium/auxiliary/translate/translate_generic.c index 4d1977229e2..809a4e47f4d 100644 --- a/src/gallium/auxiliary/translate/translate_generic.c +++ b/src/gallium/auxiliary/translate/translate_generic.c @@ -201,12 +201,6 @@ emit_B8G8R8A8_UNORM( const float *attrib, void *ptr) out[3] = TO_8_UNORM(attrib[3]); } -static void -emit_NULL( const float *attrib, void *ptr ) -{ - /* do nothing is the only sensible option */ -} - static emit_func get_emit_func( enum pipe_format format ) { switch (format) { @@ -343,8 +337,7 @@ static emit_func get_emit_func( enum pipe_format format ) return &emit_A8R8G8B8_UNORM; default: - assert(0); - return &emit_NULL; + return NULL; } } @@ -539,8 +532,12 @@ struct translate *translate_generic_create( const struct translate_key *key ) tg->attrib[i].instance_divisor = key->element[i].instance_divisor; tg->attrib[i].emit = get_emit_func(key->element[i].output_format); + if(!tg->attrib[i].emit) + { + FREE(tg); + return NULL; + } tg->attrib[i].output_offset = key->element[i].output_offset; - } tg->nr_attrib = key->nr_elements; |