[Mesa-dev] [PATCH 9/9] Remove useless checks for NULL before freeing

Brian Paul brianp at vmware.com
Wed Sep 5 07:38:16 PDT 2012


On 09/05/2012 12:42 AM, Matt Turner wrote:
> Same as earlier commit, except for "FREE"
>
> This patch has been generated by the following Coccinelle semantic
> patch:
>
> // Remove useless checks for NULL before freeing
> //
> // free (NULL) is a no-op, so there is no need to avoid it
>
> @@
> expression E;
> @@
> + FREE (E);
> + E = NULL;
> - if (unlikely (E != NULL)) {
> -   FREE(E);
> (
> -   E = NULL;
> |
> -   E = 0;
> )
>     ...
> - }
>
> @@
> expression E;
> type T;
> @@
> + FREE ((T) E);
> + E = NULL;
> - if (unlikely (E != NULL)) {
> -   FREE((T) E);
> (
> -   E = NULL;
> |
> -   E = 0;
> )
>     ...
> - }
>
> @@
> expression E;
> @@
> + FREE (E);
> - if (unlikely (E != NULL)) {
> -   FREE (E);
> - }
>
> @@
> expression E;
> type T;
> @@
> + FREE ((T) E);
> - if (unlikely (E != NULL)) {
> -   FREE ((T) E);
> - }
> ---
>   src/gallium/auxiliary/draw/draw_gs.c               |    4 +--
>   src/gallium/auxiliary/pipebuffer/pb_bufmgr_mm.c    |    3 +-
>   src/gallium/auxiliary/pipebuffer/pb_bufmgr_pool.c  |    6 +---
>   src/gallium/auxiliary/tgsi/tgsi_exec.c             |   22 +++++--------------
>   src/gallium/auxiliary/util/u_draw_quad.c           |    3 +-
>   src/gallium/auxiliary/util/u_format.c              |    8 +-----
>   src/gallium/drivers/i915/i915_resource_texture.c   |    3 +-
>   src/gallium/drivers/i915/i915_state.c              |    7 ++---
>   src/gallium/drivers/llvmpipe/lp_texture.c          |    4 +--
>   src/gallium/drivers/nv30/nvfx_fragprog.c           |   10 +++-----
>   src/gallium/drivers/nv50/nv50_program.c            |   12 +++-------
>   src/gallium/drivers/nv50/nv50_screen.c             |    6 +---
>   src/gallium/drivers/nvc0/nvc0_program.c            |   12 +++-------
>   src/gallium/drivers/nvc0/nvc0_screen.c             |    6 +---
>   src/gallium/drivers/r300/r300_screen_buffer.c      |    3 +-
>   src/gallium/drivers/r300/r300_state.c              |    3 +-
>   src/gallium/state_trackers/egl/common/egl_g3d.c    |    9 ++-----
>   src/gallium/state_trackers/egl/drm/modeset.c       |    6 +---
>   src/gallium/state_trackers/egl/drm/native_drm.c    |    6 +---
>   src/gallium/state_trackers/egl/gdi/native_gdi.c    |    3 +-
>   .../state_trackers/egl/wayland/native_drm.c        |    6 +---
>   .../state_trackers/egl/wayland/native_shm.c        |    3 +-
>   src/gallium/state_trackers/egl/x11/native_dri2.c   |    9 ++-----
>   src/gallium/state_trackers/egl/x11/native_ximage.c |    3 +-
>   src/gallium/state_trackers/vega/text.c             |    3 +-
>   src/gallium/state_trackers/wgl/stw_device.c        |    3 +-
>   src/gallium/targets/graw-xlib/graw_xlib.c          |    3 +-
>   src/gallium/winsys/sw/dri/dri_sw_winsys.c          |    4 +--
>   28 files changed, 55 insertions(+), 115 deletions(-)
>
> diff --git a/src/gallium/auxiliary/draw/draw_gs.c b/src/gallium/auxiliary/draw/draw_gs.c
> index b2b4087..c564726 100644
> --- a/src/gallium/auxiliary/draw/draw_gs.c
> +++ b/src/gallium/auxiliary/draw/draw_gs.c
> @@ -435,9 +435,7 @@ int draw_geometry_shader_run(struct draw_geometry_shader *shader,
>      shader->in_prim_idx = 0;
>      shader->input_vertex_stride = input_stride;
>      shader->input = input;
> -   if (shader->primitive_lengths) {
> -      FREE(shader->primitive_lengths);
> -   }
> +   FREE(shader->primitive_lengths);
>      shader->primitive_lengths = MALLOC(max_out_prims * sizeof(unsigned));
>
>      tgsi_exec_set_constant_buffers(machine, PIPE_MAX_CONSTANT_BUFFERS,
> diff --git a/src/gallium/auxiliary/pipebuffer/pb_bufmgr_mm.c b/src/gallium/auxiliary/pipebuffer/pb_bufmgr_mm.c
> index fe96e5c..453cf45 100644
> --- a/src/gallium/auxiliary/pipebuffer/pb_bufmgr_mm.c
> +++ b/src/gallium/auxiliary/pipebuffer/pb_bufmgr_mm.c
> @@ -287,8 +287,7 @@ if(mm->heap)
>      u_mmDestroy(mm->heap);
>      if(mm->map)
>         pb_unmap(mm->buffer);
> -   if(mm)
> -      FREE(mm);
> +   FREE(mm);
>      return NULL;
>   }
>
> diff --git a/src/gallium/auxiliary/pipebuffer/pb_bufmgr_pool.c b/src/gallium/auxiliary/pipebuffer/pb_bufmgr_pool.c
> index a8e9a34..67a19fe 100644
> --- a/src/gallium/auxiliary/pipebuffer/pb_bufmgr_pool.c
> +++ b/src/gallium/auxiliary/pipebuffer/pb_bufmgr_pool.c
> @@ -311,13 +311,11 @@ pool_bufmgr_create(struct pb_manager *provider,
>      return SUPER(pool);
>
>   failure:
> -   if(pool->bufs)
> -      FREE(pool->bufs);
> +   FREE(pool->bufs);
>      if(pool->map)
>         pb_unmap(pool->buffer);
>      if(pool->buffer)
>         pb_reference(&pool->buffer, NULL);
> -   if(pool)
> -      FREE(pool);
> +   FREE(pool);
>      return NULL;
>   }
> diff --git a/src/gallium/auxiliary/tgsi/tgsi_exec.c b/src/gallium/auxiliary/tgsi/tgsi_exec.c
> index 5e23f5d..68bb598 100644
> --- a/src/gallium/auxiliary/tgsi/tgsi_exec.c
> +++ b/src/gallium/auxiliary/tgsi/tgsi_exec.c
> @@ -653,15 +653,11 @@ tgsi_exec_machine_bind_shader(
>
>      if (!tokens) {
>         /* unbind and free all */
> -      if (mach->Declarations) {
> -         FREE( mach->Declarations );
> -      }
> +      FREE(mach->Declarations);
>         mach->Declarations = NULL;
>         mach->NumDeclarations = 0;
>
> -      if (mach->Instructions) {
> -         FREE( mach->Instructions );
> -      }
> +      FREE(mach->Instructions);
>         mach->Instructions = NULL;
>         mach->NumInstructions = 0;
>
> @@ -804,15 +800,11 @@ tgsi_exec_machine_bind_shader(
>      }
>      tgsi_parse_free (&parse);
>
> -   if (mach->Declarations) {
> -      FREE( mach->Declarations );
> -   }
> +   FREE(mach->Declarations);
>      mach->Declarations = declarations;
>      mach->NumDeclarations = numDeclarations;
>
> -   if (mach->Instructions) {
> -      FREE( mach->Instructions );
> -   }
> +   FREE(mach->Instructions);
>      mach->Instructions = instructions;
>      mach->NumInstructions = numInstructions;
>   }
> @@ -875,10 +867,8 @@ void
>   tgsi_exec_machine_destroy(struct tgsi_exec_machine *mach)
>   {
>      if (mach) {
> -      if (mach->Instructions)
> -         FREE(mach->Instructions);
> -      if (mach->Declarations)
> -         FREE(mach->Declarations);
> +      FREE(mach->Instructions);
> +      FREE(mach->Declarations);
>
>         align_free(mach->Inputs);
>         align_free(mach->Outputs);
> diff --git a/src/gallium/auxiliary/util/u_draw_quad.c b/src/gallium/auxiliary/util/u_draw_quad.c
> index 469c874..81c4f10 100644
> --- a/src/gallium/auxiliary/util/u_draw_quad.c
> +++ b/src/gallium/auxiliary/util/u_draw_quad.c
> @@ -151,6 +151,5 @@ out:
>      if (vbuf)
>         pipe_resource_reference(&vbuf, NULL);
>
> -   if (v)
> -      FREE(v);
> +   FREE(v);
>   }
> diff --git a/src/gallium/auxiliary/util/u_format.c b/src/gallium/auxiliary/util/u_format.c
> index 6f45298..a41c468 100644
> --- a/src/gallium/auxiliary/util/u_format.c
> +++ b/src/gallium/auxiliary/util/u_format.c
> @@ -618,13 +618,9 @@ util_format_translate(enum pipe_format dst_format,
>            src_row += src_step;
>         }
>
> -      if (tmp_s) {
> -         FREE(tmp_s);
> -      }
> +      FREE(tmp_s);
>
> -      if (tmp_z) {
> -         FREE(tmp_z);
> -      }
> +      FREE(tmp_z);
>
>         return;
>      }
> diff --git a/src/gallium/drivers/i915/i915_resource_texture.c b/src/gallium/drivers/i915/i915_resource_texture.c
> index e60b5b4..603a379 100644
> --- a/src/gallium/drivers/i915/i915_resource_texture.c
> +++ b/src/gallium/drivers/i915/i915_resource_texture.c
> @@ -705,8 +705,7 @@ i915_texture_destroy(struct pipe_screen *screen,
>         iws->buffer_destroy(iws, tex->buffer);
>
>      for (i = 0; i<  Elements(tex->image_offset); i++)
> -      if (tex->image_offset[i])
> -         FREE(tex->image_offset[i]);
> +      FREE(tex->image_offset[i]);
>
>      FREE(tex);
>   }
> diff --git a/src/gallium/drivers/i915/i915_state.c b/src/gallium/drivers/i915/i915_state.c
> index fdbff8b..410615f 100644
> --- a/src/gallium/drivers/i915/i915_state.c
> +++ b/src/gallium/drivers/i915/i915_state.c
> @@ -614,10 +614,8 @@ void i915_delete_fs_state(struct pipe_context *pipe, void *shader)
>   {
>      struct i915_fragment_shader *ifs = (struct i915_fragment_shader *) shader;
>
> -   if (ifs->decl) {
> -      FREE(ifs->decl);
> -      ifs->decl = NULL;
> -   }
> +   FREE(ifs->decl);
> +   ifs->decl = NULL;
>
>      if (ifs->program) {
>         FREE(ifs->program);
> @@ -625,6 +623,7 @@ void i915_delete_fs_state(struct pipe_context *pipe, void *shader)
>         FREE((struct tgsi_token *)ifs->state.tokens);
>         ifs->state.tokens = NULL;
>      }
> +
>      ifs->program_len = 0;
>      ifs->decl_len = 0;

Needless whitespace change?  Not a big deal though.

Reviewed-by: Brian Paul <brianp at vmware.com>




More information about the mesa-dev mailing list