summaryrefslogtreecommitdiffstats
path: root/src/mesa/swrast
diff options
context:
space:
mode:
authorBrian Paul <brianp@vmware.com>2014-01-20 08:06:35 -0800
committerBrian Paul <brianp@vmware.com>2014-01-20 08:18:21 -0800
commit799abb271a248f646faa5cc859968f8c71e1ef16 (patch)
tree3231c3d51cb899e691dc9fb5a5b8c39175109bdc /src/mesa/swrast
parent3ede8dd5f1096531a080bac6f17f2512bea7bbce (diff)
downloadexternal_mesa3d-799abb271a248f646faa5cc859968f8c71e1ef16.zip
external_mesa3d-799abb271a248f646faa5cc859968f8c71e1ef16.tar.gz
external_mesa3d-799abb271a248f646faa5cc859968f8c71e1ef16.tar.bz2
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 <sroland@vmware.com>
Diffstat (limited to 'src/mesa/swrast')
-rw-r--r--src/mesa/swrast/s_renderbuffer.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/mesa/swrast/s_renderbuffer.c b/src/mesa/swrast/s_renderbuffer.c
index e3f33de..a19d02a 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]);
+ }
}
}