diff options
author | Marek Olšák <[email protected]> | 2013-01-21 15:48:55 +0100 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2013-01-24 18:22:14 +0100 |
commit | fffe3e090878175269af8672d20c14a0ccab78a9 (patch) | |
tree | e91ab971c4ac55297ce59cf13a4d97ee1bf20d5f /src/gallium/state_trackers/dri | |
parent | 0261b4ecdb80973b3a00cbe6a9a77c6085ef3dff (diff) |
st/dri: add null-pointer check, remove duplicated local variable
Reviewed-by: Michel Dänzer <[email protected]>
Tested-by: Michel Dänzer <[email protected]>
Diffstat (limited to 'src/gallium/state_trackers/dri')
-rw-r--r-- | src/gallium/state_trackers/dri/common/dri_drawable.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/gallium/state_trackers/dri/common/dri_drawable.c b/src/gallium/state_trackers/dri/common/dri_drawable.c index 2ea54781d17..d817a8c2178 100644 --- a/src/gallium/state_trackers/dri/common/dri_drawable.c +++ b/src/gallium/state_trackers/dri/common/dri_drawable.c @@ -446,6 +446,7 @@ dri_flush(__DRIcontext *cPriv, /* Flush the context and throttle if needed. */ if (dri_screen(ctx->sPriv)->throttling_enabled && + drawable && (reason == __DRI2_THROTTLE_SWAPBUFFER || reason == __DRI2_THROTTLE_FLUSHFRONT)) { /* Throttle. @@ -458,19 +459,19 @@ dri_flush(__DRIcontext *cPriv, * pushes that fence on the queue. This requires that the st_context_iface * flush method returns a fence even if there are no commands to flush. */ - struct dri_drawable *draw = dri_drawable(dPriv); - struct pipe_screen *screen = draw->screen->base.screen; + struct pipe_screen *screen = drawable->screen->base.screen; struct pipe_fence_handle *fence; - fence = swap_fences_pop_front(draw); + fence = swap_fences_pop_front(drawable); if (fence) { (void) screen->fence_finish(screen, fence, PIPE_TIMEOUT_INFINITE); screen->fence_reference(screen, &fence, NULL); } ctx->st->flush(ctx->st, flush_flags, &fence); + if (fence) { - swap_fences_push_back(draw, fence); + swap_fences_push_back(drawable, fence); screen->fence_reference(screen, &fence, NULL); } } |