[Mesa-dev] [PATCH] Fix memory leaks and some bad indentation
Brian Paul
brianp at vmware.com
Mon Nov 7 07:26:25 PST 2011
On 11/06/2011 03:07 PM, Morgan Armand wrote:
> ---
> src/gallium/drivers/softpipe/sp_state_derived.c | 5 ++++-
> src/gallium/drivers/softpipe/sp_state_shader.c | 3 +++
> src/mesa/state_tracker/st_atom_texture.c | 11 +++++------
> src/mesa/state_tracker/st_cb_drawpixels.c | 10 +++++-----
> 4 files changed, 17 insertions(+), 12 deletions(-)
>
> diff --git a/src/gallium/drivers/softpipe/sp_state_derived.c b/src/gallium/drivers/softpipe/sp_state_derived.c
> index fd68808..f89d23c 100644
> --- a/src/gallium/drivers/softpipe/sp_state_derived.c
> +++ b/src/gallium/drivers/softpipe/sp_state_derived.c
> @@ -295,9 +295,12 @@ update_polygon_stipple_pattern(struct softpipe_context *softpipe)
> tex = util_pstipple_create_stipple_texture(&softpipe->pipe,
> softpipe->poly_stipple.stipple);
> pipe_resource_reference(&softpipe->pstipple.texture, tex);
> + pipe_resource_reference(&tex, NULL);
>
> - view = util_pstipple_create_sampler_view(&softpipe->pipe, tex);
> + view = util_pstipple_create_sampler_view(&softpipe->pipe,
> + softpipe->pstipple.texture);
> pipe_sampler_view_reference(&softpipe->pstipple.sampler_view, view);
> + pipe_sampler_view_reference(&view, NULL);
> }
>
>
> diff --git a/src/gallium/drivers/softpipe/sp_state_shader.c b/src/gallium/drivers/softpipe/sp_state_shader.c
> index 3dd1f9e..612dcb3 100644
> --- a/src/gallium/drivers/softpipe/sp_state_shader.c
> +++ b/src/gallium/drivers/softpipe/sp_state_shader.c
> @@ -207,6 +207,7 @@ softpipe_delete_fs_state(struct pipe_context *pipe, void *fs)
> draw_delete_fragment_shader(softpipe->draw, state->draw_shader);
>
> FREE((void *) state->shader.tokens);
> + FREE(state);
> }
>
>
> @@ -335,6 +336,8 @@ softpipe_delete_gs_state(struct pipe_context *pipe, void *gs)
>
> draw_delete_geometry_shader(softpipe->draw,
> (state) ? state->draw_data : 0);
> +
> + FREE((void *) state->shader.tokens);
> FREE(state);
> }
>
> diff --git a/src/mesa/state_tracker/st_atom_texture.c b/src/mesa/state_tracker/st_atom_texture.c
> index 3115a25..008e9bd 100644
> --- a/src/mesa/state_tracker/st_atom_texture.c
> +++ b/src/mesa/state_tracker/st_atom_texture.c
> @@ -267,14 +267,13 @@ update_vertex_textures(struct st_context *st)
> GLboolean retval;
> GLuint texUnit;
>
> - texUnit = vprog->Base.SamplerUnits[su];
> + texUnit = vprog->Base.SamplerUnits[su];
>
> - retval = update_single_texture(st,&sampler_view, texUnit);
> - if (retval == GL_FALSE)
> - continue;
> -
> - st->state.num_vertex_textures = su + 1;
> + retval = update_single_texture(st,&sampler_view, texUnit);
> + if (retval == GL_FALSE)
> + continue;
>
> + st->state.num_vertex_textures = su + 1;
> }
> pipe_sampler_view_reference(&st->state.sampler_vertex_views[su], sampler_view);
> }
> diff --git a/src/mesa/state_tracker/st_cb_drawpixels.c b/src/mesa/state_tracker/st_cb_drawpixels.c
> index 1c44d0d..5714d34 100644
> --- a/src/mesa/state_tracker/st_cb_drawpixels.c
> +++ b/src/mesa/state_tracker/st_cb_drawpixels.c
> @@ -1135,10 +1135,10 @@ st_DrawPixels(struct gl_context *ctx, GLint x, GLint y,
> assert(0);
> }
>
> - sv[1] = st_create_texture_sampler_view_format(st->pipe, pt,
> + sv[1] = st_create_texture_sampler_view_format(st->pipe, pt,
> stencil_format);
> - num_sampler_view++;
> - }
> + num_sampler_view++;
> + }
>
> draw_textured_quad(ctx, x, y, ctx->Current.RasterPos[2],
> width, height,
> @@ -1638,9 +1638,9 @@ st_destroy_drawpix(struct st_context *st)
>
> st_reference_fragprog(st,&st->pixel_xfer.combined_prog, NULL);
> if (st->drawpix.vert_shaders[0])
> - ureg_free_tokens(st->drawpix.vert_shaders[0]);
> + cso_delete_vertex_shader(st->cso_context, st->drawpix.vert_shaders[0]);
> if (st->drawpix.vert_shaders[1])
> - ureg_free_tokens(st->drawpix.vert_shaders[1]);
> + cso_delete_vertex_shader(st->cso_context, st->drawpix.vert_shaders[1]);
> }
>
> #endif /* FEATURE_drawpix */
The changes look fine. However, I suggest splitting up the patch into
three pieces:
softpipe: fix memory leaks
st/mesa: fix memory leaks
st/mesa: fix indentation
-Brian
More information about the mesa-dev
mailing list