[Spice-devel] [PATCH 02/17] Remove useless if() before free()

Daniel P. Berrange berrange at redhat.com
Tue Jan 10 07:58:23 PST 2012


From: "Daniel P. Berrange" <berrange at redhat.com>

The free() function allows NULL to be passed in, so any
code which puts a if() before free() is wasting time
---
 common/canvas_base.c             |    8 ++------
 common/canvas_utils.c            |    4 +---
 common/gdi_canvas.c              |    4 +---
 common/gl_canvas.c               |    4 +---
 common/lines.c                   |   15 +++++----------
 common/mem.c                     |    4 +---
 common/sw_canvas.c               |    4 +---
 server/mjpeg_encoder.c           |    3 +--
 server/red_parse_qxl.c           |    4 +---
 server/red_worker.c              |    4 +---
 server/tests/test_display_base.c |    4 +---
 11 files changed, 16 insertions(+), 42 deletions(-)

diff --git a/common/canvas_base.c b/common/canvas_base.c
index d11c8ec..16688fb 100644
--- a/common/canvas_base.c
+++ b/common/canvas_base.c
@@ -749,9 +749,7 @@ static pixman_image_t *canvas_get_lz(CanvasBase *canvas, SpiceImage *image, int
     int free_palette;
 
     if (setjmp(lz_data->jmp_env)) {
-        if (decomp_buf) {
-            free(decomp_buf);
-        }
+        free(decomp_buf);
         CANVAS_ERROR("lz error, %s", lz_data->message_buf);
     }
 
@@ -3134,9 +3132,7 @@ static void canvas_draw_stroke(SpiceCanvas *spice_canvas, SpiceRect *bbox,
 
     stroke_lines_draw(&lines, (lineGC *)&gc, dashed);
 
-    if (gc.base.dash) {
-        free(gc.base.dash);
-    }
+    free(gc.base.dash);
     stroke_lines_free(&lines);
 
     if (!gc.solid && gc.tile && !surface_canvas) {
diff --git a/common/canvas_utils.c b/common/canvas_utils.c
index 55b7159..71f6890 100644
--- a/common/canvas_utils.c
+++ b/common/canvas_utils.c
@@ -51,9 +51,7 @@ static void release_data(pixman_image_t *image, void *release_data)
         gdi_handlers--;
     }
 #endif
-    if (data->data) {
-        free(data->data);
-    }
+    free(data->data);
 
     free(data);
 }
diff --git a/common/gdi_canvas.c b/common/gdi_canvas.c
index fe2ac5d..5200cf9 100644
--- a/common/gdi_canvas.c
+++ b/common/gdi_canvas.c
@@ -1775,9 +1775,7 @@ static void gdi_canvas_draw_stroke(SpiceCanvas *spice_canvas, SpiceRect *bbox, S
     }
 #endif
 
-    if (user_style) {
-        free(user_style);
-    }
+    free(user_style);
 }
 
 static void gdi_canvas_clear(SpiceCanvas *spice_canvas)
diff --git a/common/gl_canvas.c b/common/gl_canvas.c
index a04740b..ffc6b52 100644
--- a/common/gl_canvas.c
+++ b/common/gl_canvas.c
@@ -870,9 +870,7 @@ static void gl_canvas_destroy(SpiceCanvas *spice_canvas)
     }
     canvas_base_destroy(&canvas->base);
     glc_destroy(canvas->glc, canvas->textures_lost);
-    if (canvas->private_data) {
-        free(canvas->private_data);
-    }
+    free(canvas->private_data);
     free(canvas);
 }
 
diff --git a/common/lines.c b/common/lines.c
index e2349e8..9b47ee3 100644
--- a/common/lines.c
+++ b/common/lines.c
@@ -580,8 +580,7 @@ miAppendSpans (SpanGroup * spanGroup, SpanGroup * otherGroup, Spans * spans)
 static void
 miFreeSpanGroup (SpanGroup * spanGroup)
 {
-    if (spanGroup->group != NULL)
-        xfree (spanGroup->group);
+    xfree (spanGroup->group);
 }
 
 static void
@@ -776,10 +775,8 @@ miFillUniqueSpanGroup (GCPtr pGC, SpanGroup * spanGroup, Boolean foreground)
         ysizes = (int *)xalloc (ylength * sizeof (int));
 
         if (!yspans || !ysizes) {
-            if (yspans)
-                xfree (yspans);
-            if (ysizes)
-                xfree (ysizes);
+            xfree (yspans);
+            xfree (ysizes);
             miDisposeSpanGroup (spanGroup);
             return;
         }
@@ -849,10 +846,8 @@ miFillUniqueSpanGroup (GCPtr pGC, SpanGroup * spanGroup, Boolean foreground)
             }
             xfree (yspans);
             xfree (ysizes);
-            if (points)
-                xfree (points);
-            if (widths)
-                xfree (widths);
+            xfree (points);
+            xfree (widths);
             return;
         }
         count = 0;
diff --git a/common/mem.c b/common/mem.c
index 7236cf0..5298e37 100644
--- a/common/mem.c
+++ b/common/mem.c
@@ -130,9 +130,7 @@ void *spice_realloc(void *mem, size_t n_bytes)
                      (unsigned long)n_bytes);
     }
 
-    if (mem) {
-        free(mem);
-    }
+    free(mem);
 
     return NULL;
 }
diff --git a/common/sw_canvas.c b/common/sw_canvas.c
index 287fdf2..3a75e48 100644
--- a/common/sw_canvas.c
+++ b/common/sw_canvas.c
@@ -1163,9 +1163,7 @@ static void canvas_destroy(SpiceCanvas *spice_canvas)
     }
     pixman_image_unref(canvas->image);
     canvas_base_destroy(&canvas->base);
-    if (canvas->private_data) {
-        free(canvas->private_data);
-    }
+    free(canvas->private_data);
     free(canvas);
 }
 
diff --git a/server/mjpeg_encoder.c b/server/mjpeg_encoder.c
index 599d4f5..6b68549 100644
--- a/server/mjpeg_encoder.c
+++ b/server/mjpeg_encoder.c
@@ -129,8 +129,7 @@ static boolean empty_mem_output_buffer(j_compress_ptr cinfo)
 
   memcpy(nextbuffer, dest->buffer, dest->bufsize);
 
-  if (dest->newbuffer != NULL)
-    free(dest->newbuffer);
+  free(dest->newbuffer);
 
   dest->newbuffer = nextbuffer;
 
diff --git a/server/red_parse_qxl.c b/server/red_parse_qxl.c
index 743a82d..256e8e9 100644
--- a/server/red_parse_qxl.c
+++ b/server/red_parse_qxl.c
@@ -409,9 +409,7 @@ void red_put_image(SpiceImage *red)
 
     switch (red->descriptor.type) {
     case SPICE_IMAGE_TYPE_BITMAP:
-        if (red->u.bitmap.palette) {
-            free(red->u.bitmap.palette);
-        }
+        free(red->u.bitmap.palette);
         spice_chunks_destroy(red->u.bitmap.data);
         break;
     case SPICE_IMAGE_TYPE_QUIC:
diff --git a/server/red_worker.c b/server/red_worker.c
index e2c2393..b312fcc 100644
--- a/server/red_worker.c
+++ b/server/red_worker.c
@@ -2468,9 +2468,7 @@ static void red_display_release_stream_clip(RedWorker *worker, StreamClipItem *i
 {
     if (!--item->refs) {
         red_display_release_stream(worker, item->stream_agent);
-        if (item->rects) {
-            free(item->rects);
-        }
+        free(item->rects);
         free(item);
     }
 }
diff --git a/server/tests/test_display_base.c b/server/tests/test_display_base.c
index 81f942b..579ef1e 100644
--- a/server/tests/test_display_base.c
+++ b/server/tests/test_display_base.c
@@ -29,9 +29,7 @@ static void test_spice_destroy_update(SimpleSpiceUpdate *update)
     if (!update) {
         return;
     }
-    if (update->bitmap) {
-        free(update->bitmap);
-    }
+    free(update->bitmap);
     free(update);
 }
 
-- 
1.7.7.5



More information about the Spice-devel mailing list