From 04f863e85669fdf42f3ec401c55b1533e8069dee Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Tue, 21 Jun 2005 14:39:43 +0000 Subject: [PATCH] check for NULL swrast->Driver.SetBuffer before calling it --- src/mesa/swrast/s_buffers.c | 8 +++++--- src/mesa/swrast/s_span.c | 3 ++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/mesa/swrast/s_buffers.c b/src/mesa/swrast/s_buffers.c index 7f95ed5..e788900 100644 --- a/src/mesa/swrast/s_buffers.c +++ b/src/mesa/swrast/s_buffers.c @@ -236,8 +236,9 @@ clear_color_buffers(GLcontext *ctx) struct gl_renderbuffer *rb = ctx->DrawBuffer->_ColorDrawBuffers[0][i]; #if OLD_RENDERBUFFER || NEW_RENDERBUFFER /* SetBuffer will go away */ - swrast->Driver.SetBuffer(ctx, ctx->DrawBuffer, - ctx->DrawBuffer->_ColorDrawBit[0][i]); + if (swrast->Driver.SetBuffer) + swrast->Driver.SetBuffer(ctx, ctx->DrawBuffer, + ctx->DrawBuffer->_ColorDrawBit[0][i]); #endif if (ctx->Visual.rgbMode) { @@ -357,7 +358,8 @@ _swrast_use_read_buffer( GLcontext *ctx ) /* Do this so the software-emulated alpha plane span functions work! */ swrast->CurrentBufferBit = ctx->ReadBuffer->_ColorReadBufferMask; /* Tell the device driver where to read/write spans */ - swrast->Driver.SetBuffer(ctx, ctx->ReadBuffer, swrast->CurrentBufferBit); + if (swrast->Driver.SetBuffer) + swrast->Driver.SetBuffer(ctx, ctx->ReadBuffer, swrast->CurrentBufferBit); } diff --git a/src/mesa/swrast/s_span.c b/src/mesa/swrast/s_span.c index 86ae136..3a6e719 100644 --- a/src/mesa/swrast/s_span.c +++ b/src/mesa/swrast/s_span.c @@ -1053,7 +1053,8 @@ multi_write_rgba_span( GLcontext *ctx, struct sw_span *span ) GLuint bufferBit = fb->_ColorDrawBit[output][i]; /* Set the current read/draw buffer */ swrast->CurrentBufferBit = bufferBit; - (*swrast->Driver.SetBuffer)(ctx, ctx->DrawBuffer, bufferBit); + if (swrast->Driver.SetBuffer) + (*swrast->Driver.SetBuffer)(ctx, ctx->DrawBuffer, bufferBit); #endif /* make copy of incoming colors */ -- 2.7.4