Server Memory Leaks

Rob Shearman rob at codeweavers.com
Sat May 21 16:42:08 CDT 2005


Changelog:
Fix several memory leaks.
-------------- next part --------------
diff -u -p -N -r -x '*~' -x '.#*' -x CVS -x Makefile -x '*.o' -x '*.spec.def' server_old/registry.c server/registry.c
--- server_old/registry.c	2005-05-20 10:41:16.000000000 -0500
+++ server/registry.c	2005-05-21 16:12:30.000000000 -0500
@@ -320,11 +320,13 @@ static void key_destroy( struct object *
         free( key->values[i].name );
         if (key->values[i].data) free( key->values[i].data );
     }
+    if (key->values) free( key->values );
     for (i = 0; i <= key->last_subkey; i++)
     {
         key->subkeys[i]->parent = NULL;
         release_object( key->subkeys[i] );
     }
+    if (key->subkeys) free( key->subkeys );
     /* unconditionally notify everything waiting on this key */
     while ((ptr = list_head( &key->notify_list )))
     {
@@ -1671,7 +1673,11 @@ void close_registry(void)
 
     if (save_timeout_user) remove_timeout_user( save_timeout_user );
     save_timeout_user = NULL;
-    for (i = 0; i < save_branch_count; i++) release_object( save_branch_info[i].key );
+    for (i = 0; i < save_branch_count; i++)
+    {
+        release_object( save_branch_info[i].key );
+        free( save_branch_info[i].path );
+    }
     release_object( root_key );
 }
 
diff -u -p -N -r -x '*~' -x '.#*' -x CVS -x Makefile -x '*.o' -x '*.spec.def' server_old/window.c server/window.c
--- server_old/window.c	2005-05-20 10:41:17.000000000 -0500
+++ server/window.c	2005-05-21 16:54:25.000000000 -0500
@@ -838,7 +838,11 @@ static void set_update_region( struct wi
     }
     else
     {
-        if (win->update_region) inc_window_paint_count( win, -1 );
+        if (win->update_region)
+        {
+            inc_window_paint_count( win, -1 );
+            free_region( win->update_region );
+        }
         win->paint_flags &= ~(PAINT_ERASE | PAINT_NONCLIENT);
         win->update_region = NULL;
         if (region) free_region( region );


More information about the wine-patches mailing list