[mousetweaks] Fix a mem leak and reduce nr. of cursor image copies



commit 870a5f6bf6342c09395b6128079aff0bbf3e7314
Author: Gerd Kohlberger <gerdk src gnome org>
Date:   Sun Nov 7 18:29:14 2010 +0100

    Fix a mem leak and reduce nr. of cursor image copies

 src/mt-cursor-manager.c |    2 +-
 src/mt-cursor.c         |    4 ++--
 src/mt-main.c           |    1 -
 3 files changed, 3 insertions(+), 4 deletions(-)
---
diff --git a/src/mt-cursor-manager.c b/src/mt-cursor-manager.c
index 50936b4..8ecef50 100644
--- a/src/mt-cursor-manager.c
+++ b/src/mt-cursor-manager.c
@@ -191,7 +191,7 @@ mt_cursor_manager_add_cursor (MtCursorManager   *manager,
     }
     else
     {
-        pixels = (guchar *) image->pixels;
+        pixels = g_memdup (image->pixels, image->width * image->height * 4);
     }
 
     cursor = mt_cursor_new (image->name, pixels,
diff --git a/src/mt-cursor.c b/src/mt-cursor.c
index 8057b5d..9354d7e 100644
--- a/src/mt-cursor.c
+++ b/src/mt-cursor.c
@@ -76,13 +76,13 @@ mt_cursor_new (const gchar *name,
     g_return_val_if_fail (width > 0 && height > 0, NULL);
     g_return_val_if_fail (xhot <= width && yhot <= height, NULL);
 
-    if (*name == 0)
+    if (name[0] == '\0')
         return NULL;
 
     cursor = g_object_new (MT_TYPE_CURSOR, NULL);
     priv = cursor->priv;
     priv->name   = g_strdup (name);
-    priv->image  = g_memdup (image, width * height * 4);
+    priv->image  = image;
     priv->width  = width;
     priv->height = height;
     priv->xhot   = xhot;
diff --git a/src/mt-main.c b/src/mt-main.c
index e4bb077..fc32bcb 100644
--- a/src/mt-main.c
+++ b/src/mt-main.c
@@ -497,7 +497,6 @@ mt_main_update_cursor (MtData  *mt,
         mt_cursor_manager_set_cursor (mt_cursor_manager_get_default (), new_cursor);
 
         g_object_unref (new_cursor);
-        g_free (image);
     }
 }
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]