[Mesa-dev] [PATCH 5/9] Remove useless checks for NULL before freeing
Brian Paul
brianp at vmware.com
Wed Sep 5 07:33:59 PDT 2012
On 09/05/2012 12:42 AM, Matt Turner wrote:
> 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/egl/drivers/dri2/egl_dri2.c | 3 +--
> src/egl/drivers/dri2/platform_x11.c | 3 +--
> src/egl/drivers/glx/egl_glx.c | 6 ++----
> src/gallium/drivers/r600/r600_shader.c | 6 ++----
> src/gallium/state_trackers/egl/x11/glxinit.c | 4 +---
> src/gallium/state_trackers/egl/x11/x11_screen.c | 9 +++------
> src/gallium/state_trackers/glx/xlib/xm_api.c | 6 ++----
> src/gallium/state_trackers/glx/xlib/xm_st.c | 6 ++----
> src/gallium/state_trackers/vega/shaders_cache.c | 9 +++------
> src/gallium/state_trackers/xvmc/subpicture.c | 3 +--
> src/gallium/targets/graw-xlib/graw_xlib.c | 3 +--
> src/glx/dri2_glx.c | 6 ++----
> src/glx/dri_glx.c | 6 ++----
> src/glx/drisw_glx.c | 3 +--
> src/glx/glxext.c | 9 +++------
> src/glx/indirect_glx.c | 12 ++++--------
> src/glx/indirect_vertex_array.c | 12 ++++--------
> src/mesa/drivers/dri/common/xmlconfig.c | 9 +++------
> src/mesa/drivers/dri/intel/intel_buffer_objects.c | 6 ++----
> src/mesa/drivers/dri/intel/intel_tex.c | 6 ++----
> .../drivers/dri/radeon/radeon_common_context.c | 3 +--
> src/mesa/drivers/dri/radeon/radeon_texture.c | 6 ++----
> src/mesa/drivers/x11/fakeglx.c | 4 +---
> src/mesa/main/atifragshader.c | 12 ++++--------
> src/mesa/main/bufferobj.c | 3 +--
> src/mesa/main/context.c | 6 ++----
> src/mesa/main/imports.c | 3 +--
> src/mesa/main/shaderapi.c | 4 +---
> src/mesa/main/shaderobj.c | 9 +++------
> src/mesa/main/texcompress_cpal.c | 3 +--
> src/mesa/main/texcompress_fxt1.c | 4 +---
> src/mesa/program/arbprogparse.c | 12 ++++--------
> src/mesa/program/nvfragparse.c | 8 ++------
> src/mesa/program/nvvertparse.c | 8 ++------
> src/mesa/program/prog_instruction.c | 6 ++----
> src/mesa/program/prog_parameter.c | 3 +--
> src/mesa/program/program.c | 3 +--
> src/mesa/state_tracker/st_cb_texture.c | 3 +--
> src/mesa/swrast/s_context.c | 3 +--
> src/mesa/swrast/s_drawpix.c | 4 +---
> src/mesa/swrast/s_renderbuffer.c | 12 ++++--------
> src/mesa/swrast/s_texture.c | 6 ++----
> src/mesa/tnl/t_vb_texgen.c | 4 ++--
> src/mesa/vbo/vbo_primitive_restart.c | 4 +---
> src/mesa/vbo/vbo_rebase.c | 6 ++----
> src/mesa/vbo/vbo_save_api.c | 6 ++----
> 46 files changed, 88 insertions(+), 184 deletions(-)
The patch looks OK (one little note below) but this is pretty huge.
In the future could you break down big patches into glx, mesa and
gallium chunks?
[...]
> diff --git a/src/gallium/state_trackers/egl/x11/x11_screen.c b/src/gallium/state_trackers/egl/x11/x11_screen.c
> index 47d9a69..effac0e 100644
> --- a/src/gallium/state_trackers/egl/x11/x11_screen.c
> +++ b/src/gallium/state_trackers/egl/x11/x11_screen.c
> @@ -95,10 +95,8 @@ x11_screen_destroy(struct x11_screen *xscr)
> {
> if (xscr->dri_fd>= 0)
> close(xscr->dri_fd);
> - if (xscr->dri_driver)
> - free(xscr->dri_driver);
> - if (xscr->dri_device)
> - free(xscr->dri_device);
> + free(xscr->dri_driver);
> + free(xscr->dri_device);
>
> #ifdef GLX_DIRECT_RENDERING
> /* xscr->glx_dpy will be destroyed with the X display */
> @@ -106,8 +104,7 @@ x11_screen_destroy(struct x11_screen *xscr)
> xscr->glx_dpy->xscr = NULL;
> #endif
>
> - if (xscr->visuals)
> - free(xscr->visuals);
> + free(xscr->visuals);
> FREE(xscr);
Looks like we've still got more MALLOC/CALLOC/FREE clean-up to do.
Reviewed-by: Brian Paul <brianp at vmware.com>
More information about the mesa-dev
mailing list