fix-nickcolor-memleak.diff
author Myhailo Danylenko <isbear@ukrpost.net>
Wed, 15 May 2013 13:32:42 +0300
changeset 86 ac5fed257211
parent 76 3c8b784f92c7
permissions -rw-r--r--
[round-prio] Fix numbers
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
76
3c8b784f92c7 [cmdopts,fix-memleak] Start to clean things a bit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     1
# HG changeset patch
3c8b784f92c7 [cmdopts,fix-memleak] Start to clean things a bit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     2
# Parent a70b6bce62ccc3866f844b7a5e4e6bb27309c11f
3c8b784f92c7 [cmdopts,fix-memleak] Start to clean things a bit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     3
Fix memleak on replacing nickcolor rules
3c8b784f92c7 [cmdopts,fix-memleak] Start to clean things a bit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     4
3c8b784f92c7 [cmdopts,fix-memleak] Start to clean things a bit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     5
diff -r a70b6bce62cc -r 646da4f1d2e1 mcabber/mcabber/screen.c
3c8b784f92c7 [cmdopts,fix-memleak] Start to clean things a bit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     6
--- a/mcabber/mcabber/screen.c	Fri Jan 18 11:23:51 2013 +0200
3c8b784f92c7 [cmdopts,fix-memleak] Start to clean things a bit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     7
+++ b/mcabber/mcabber/screen.c	Mon Mar 11 21:45:20 2013 +0200
3c8b784f92c7 [cmdopts,fix-memleak] Start to clean things a bit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     8
@@ -338,11 +338,15 @@
3c8b784f92c7 [cmdopts,fix-memleak] Start to clean things a bit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     9
       g_free(mnick);
3c8b784f92c7 [cmdopts,fix-memleak] Start to clean things a bit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    10
     } else {
3c8b784f92c7 [cmdopts,fix-memleak] Start to clean things a bit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    11
       nickcolor *nc = g_new(nickcolor, 1);
3c8b784f92c7 [cmdopts,fix-memleak] Start to clean things a bit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    12
+      nickcolor *oc;
3c8b784f92c7 [cmdopts,fix-memleak] Start to clean things a bit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    13
       ensure_string_htable(&nickcolors, NULL);
3c8b784f92c7 [cmdopts,fix-memleak] Start to clean things a bit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    14
       nc->manual = TRUE;
3c8b784f92c7 [cmdopts,fix-memleak] Start to clean things a bit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    15
       nc->color = cl;
3c8b784f92c7 [cmdopts,fix-memleak] Start to clean things a bit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    16
       // Free the struct, if any there already
3c8b784f92c7 [cmdopts,fix-memleak] Start to clean things a bit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    17
-      g_free(g_hash_table_lookup(nickcolors, mnick));
3c8b784f92c7 [cmdopts,fix-memleak] Start to clean things a bit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    18
+      if ((oc = g_hash_table_lookup(nickcolors, mnick))) {
3c8b784f92c7 [cmdopts,fix-memleak] Start to clean things a bit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    19
+        g_free(oc -> color);
3c8b784f92c7 [cmdopts,fix-memleak] Start to clean things a bit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    20
+        g_free(oc);
3c8b784f92c7 [cmdopts,fix-memleak] Start to clean things a bit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    21
+      }
3c8b784f92c7 [cmdopts,fix-memleak] Start to clean things a bit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    22
       // Save the new ones
3c8b784f92c7 [cmdopts,fix-memleak] Start to clean things a bit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    23
       g_hash_table_replace(nickcolors, mnick, nc);
3c8b784f92c7 [cmdopts,fix-memleak] Start to clean things a bit
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    24
       g_hash_table_replace(nickcolors, snick, nc);