diff options
author | Brian Paul <[email protected]> | 2014-01-20 08:06:35 -0800 |
---|---|---|
committer | Brian Paul <[email protected]> | 2014-01-20 08:18:21 -0800 |
commit | 799abb271a248f646faa5cc859968f8c71e1ef16 (patch) | |
tree | 3231c3d51cb899e691dc9fb5a5b8c39175109bdc /src | |
parent | 3ede8dd5f1096531a080bac6f17f2512bea7bbce (diff) |
swrast: check for null/-1 when mapping renderbuffers
Fixes fbo-drawbuffers-none crash (but test still fails).
https://bugs.freedesktop.org/show_bug.cgi?id=73757
Reviewed-by: Roland Scheidegger <[email protected]>
Diffstat (limited to 'src')
-rw-r--r-- | src/mesa/swrast/s_renderbuffer.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/mesa/swrast/s_renderbuffer.c b/src/mesa/swrast/s_renderbuffer.c index e3f33de7dc6..a19d02ac0cd 100644 --- a/src/mesa/swrast/s_renderbuffer.c +++ b/src/mesa/swrast/s_renderbuffer.c @@ -659,8 +659,10 @@ _swrast_map_renderbuffers(struct gl_context *ctx) } for (buf = 0; buf < fb->_NumColorDrawBuffers; buf++) { - map_attachment(ctx, fb, fb->_ColorDrawBufferIndexes[buf]); - find_renderbuffer_colortype(fb->_ColorDrawBuffers[buf]); + if (fb->_ColorDrawBufferIndexes[buf] >= 0) { + map_attachment(ctx, fb, fb->_ColorDrawBufferIndexes[buf]); + find_renderbuffer_colortype(fb->_ColorDrawBuffers[buf]); + } } } @@ -688,6 +690,8 @@ _swrast_unmap_renderbuffers(struct gl_context *ctx) } for (buf = 0; buf < fb->_NumColorDrawBuffers; buf++) { - unmap_attachment(ctx, fb, fb->_ColorDrawBufferIndexes[buf]); + if (fb->_ColorDrawBufferIndexes[buf] >= 0) { + unmap_attachment(ctx, fb, fb->_ColorDrawBufferIndexes[buf]); + } } } |