From: Zack Rusin Date: Wed, 19 Sep 2007 18:06:19 +0000 (-0400) Subject: Avoid redundant reallocation of the template. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=c8650b087440c7ba5ad0d8652dc916852e55bc1d;p=mesa.git Avoid redundant reallocation of the template. cso already allocated the template for us. Returning 0 means we have no driver specific representation and just want the template on the bind. --- diff --git a/src/mesa/pipe/softpipe/sp_state_blend.c b/src/mesa/pipe/softpipe/sp_state_blend.c index 7a94e82d6f8..7fb47e7aaba 100644 --- a/src/mesa/pipe/softpipe/sp_state_blend.c +++ b/src/mesa/pipe/softpipe/sp_state_blend.c @@ -34,10 +34,9 @@ void * softpipe_create_blend_state(struct pipe_context *pipe, const struct pipe_blend_state *blend) { - struct pipe_blend_state *new_blend = malloc(sizeof(struct pipe_blend_state)); - memcpy(new_blend, blend, sizeof(struct pipe_blend_state)); - - return new_blend; + /* means that we just want pipe_blend_state and don't have + * anything specific */ + return 0; } void softpipe_bind_blend_state( struct pipe_context *pipe, @@ -53,7 +52,7 @@ void softpipe_bind_blend_state( struct pipe_context *pipe, void softpipe_delete_blend_state(struct pipe_context *pipe, void *blend ) { - free(blend); + /* do nothing */ } diff --git a/src/mesa/state_tracker/st_atom_blend.c b/src/mesa/state_tracker/st_atom_blend.c index d5eadc3541a..f321cd38298 100644 --- a/src/mesa/state_tracker/st_atom_blend.c +++ b/src/mesa/state_tracker/st_atom_blend.c @@ -156,6 +156,7 @@ static void update_blend( struct st_context *st ) { struct pipe_blend_state blend; + const struct cso_blend *cso; memset(&blend, 0, sizeof(blend)); @@ -211,8 +212,7 @@ update_blend( struct st_context *st ) if (st->ctx->Color.DitherFlag) blend.dither = 1; - const struct cso_blend *cso = - st_cached_blend_state(st, &blend); + cso = st_cached_blend_state(st, &blend); if (st->state.blend != cso) { /* state has changed */