Author: lupus
Date: 2007-09-20 10:50:39 -0400 (Thu, 20 Sep 2007)
New Revision: 86062
Modified:
trunk/mono/mono/metadata/ChangeLog
trunk/mono/mono/metadata/image.c
trunk/mono/mono/metadata/metadata-internals.h
Log:
Thu Sep 20 16:59:36 CEST 2007 Paolo Molaro <[EMAIL PROTECTED]>
* image.c, metadata-internals.h: don't keep a file descriptor open
for loaded assemblies (bug#325988).
Modified: trunk/mono/mono/metadata/ChangeLog
===================================================================
--- trunk/mono/mono/metadata/ChangeLog 2007-09-20 14:50:04 UTC (rev 86061)
+++ trunk/mono/mono/metadata/ChangeLog 2007-09-20 14:50:39 UTC (rev 86062)
@@ -1,3 +1,9 @@
+
+Thu Sep 20 16:59:36 CEST 2007 Paolo Molaro <[EMAIL PROTECTED]>
+
+ * image.c, metadata-internals.h: don't keep a file descriptor open
+ for loaded assemblies (bug#325988).
+
2007-09-19 Raja R Harinath <[EMAIL PROTECTED]>
* metadata.c (signature_in_image): New. Carve out of type_in_image.
Modified: trunk/mono/mono/metadata/image.c
===================================================================
--- trunk/mono/mono/metadata/image.c 2007-09-20 14:50:04 UTC (rev 86061)
+++ trunk/mono/mono/metadata/image.c 2007-09-20 14:50:39 UTC (rev 86062)
@@ -912,7 +912,7 @@
return NULL;
}
image = g_new0 (MonoImage, 1);
- image->file_descr = filed;
+ image->raw_buffer_used = TRUE;
image->raw_data_len = stat_buf.st_size;
image->raw_data = mono_raw_buffer_load (fileno (filed), FALSE, 0,
stat_buf.st_size);
iinfo = g_new0 (MonoCLIImageInfo, 1);
@@ -921,6 +921,8 @@
image->ref_only = refonly;
image->ref_count = 1;
+ fclose (filed);
+
return do_mono_image_load (image, status, care_about_cli);
}
@@ -1222,9 +1224,7 @@
mono_images_unlock ();
- if (image->file_descr) {
- fclose (image->file_descr);
- image->file_descr = NULL;
+ if (image->raw_buffer_used) {
if (image->raw_data != NULL)
mono_raw_buffer_free (image->raw_data);
}
Modified: trunk/mono/mono/metadata/metadata-internals.h
===================================================================
--- trunk/mono/mono/metadata/metadata-internals.h 2007-09-20 14:50:04 UTC
(rev 86061)
+++ trunk/mono/mono/metadata/metadata-internals.h 2007-09-20 14:50:39 UTC
(rev 86062)
@@ -72,10 +72,9 @@
* this image between calls of mono_image_open () and mono_image_close
().
*/
int ref_count;
- FILE *file_descr;
- /* if file_descr is NULL the image was loaded from raw data */
char *raw_data;
guint32 raw_data_len;
+ guint8 raw_buffer_used : 1;
guint8 raw_data_allocated : 1;
/* Whenever this is a dynamically emitted module */
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches