Hi.

Mono forgets to release the memory of any debug image file that was loaded from memory. Attach patch fixicates.

Bye, Lucas
Index: debug-mono-symfile.c
===================================================================
--- debug-mono-symfile.c        (revision 42294)
+++ debug-mono-symfile.c        (working copy)
@@ -123,10 +123,11 @@
                symfile->raw_contents = p = g_malloc (size);
                memcpy (p, raw_contents, size);
                symfile->filename = g_strdup_printf ("LoadedFromMemory");
+               symfile->was_loaded_from_memory = TRUE;
        } else {
                MonoFileMap *f;
                symfile->filename = g_strdup_printf ("%s.mdb", 
mono_image_get_filename (handle->image));
-
+               symfile->was_loaded_from_memory = FALSE;
                if ((f = mono_file_map_open (symfile->filename))) {
                        symfile->raw_contents_size = mono_file_map_size (f);
                        if (symfile->raw_contents_size == 0) {
@@ -165,7 +166,12 @@
                g_hash_table_destroy (symfile->method_hash);
 
        if (symfile->raw_contents)
-               mono_file_unmap ((gpointer) symfile->raw_contents, 
symfile->raw_contents_handle);
+       {
+               if (symfile->was_loaded_from_memory)
+                       g_free(symfile->raw_contents);
+               else
+                       mono_file_unmap ((gpointer) symfile->raw_contents, 
symfile->raw_contents_handle);
+       }
 
        if (symfile->filename)
                g_free (symfile->filename);
Index: debug-mono-symfile.h
===================================================================
--- debug-mono-symfile.h        (revision 42294)
+++ debug-mono-symfile.h        (working copy)
@@ -91,6 +91,7 @@
        gchar *filename;
        GHashTable *method_hash;
        MonoSymbolFileOffsetTable *offset_table;
+       gboolean was_loaded_from_memory;
 };
 
 #define MONO_SYMBOL_FILE_MAJOR_VERSION         50
_______________________________________________
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list

Reply via email to