Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
authorPaolo Molaro <lupus@oddwiz.org>
Mon, 15 Jan 2007 09:29:01 +0000 (09:29 -0000)
committerPaolo Molaro <lupus@oddwiz.org>
Mon, 15 Jan 2007 09:29:01 +0000 (09:29 -0000)
* reflection.c: align fields rva data so it's faster to load at
runtime.

svn path=/trunk/mono/; revision=71015

mono/metadata/ChangeLog
mono/metadata/reflection.c

index 03b7996f614281e9cff307d8e7267b004e724bf4..153d3f61eeaf885ef665427be373fa0bb5ff8543 100644 (file)
@@ -1,3 +1,9 @@
+
+Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
+
+       * reflection.c: align fields rva data so it's faster to load at
+       runtime.
+
 2007-01-12  Raja R Harinath  <rharinath@novell.com>
 
        Prepare to simplify GenericMethod handling.
index 67f00b301cfd738fd0464e8161845bb73bad9b51..c7b23ed5c484dacaedc32150df7817db6fca9ef7 100644 (file)
@@ -1849,9 +1849,11 @@ mono_image_get_field_info (MonoReflectionFieldBuilder *fb, MonoDynamicImage *ass
                /*
                 * We store it in the code section because it's simpler for now.
                 */
-               if (fb->rva_data)
+               if (fb->rva_data) {
+                       if (mono_array_length (fb->rva_data) >= 10)
+                               stream_data_align (&assembly->code);
                        rva_idx = mono_image_add_stream_data (&assembly->code, mono_array_addr (fb->rva_data, char, 0), mono_array_length (fb->rva_data));
-               else
+               else
                        rva_idx = mono_image_add_stream_zero (&assembly->code, mono_class_value_size (fb->handle->parent, NULL));
                values [MONO_FIELD_RVA_RVA] = rva_idx + assembly->text_rva;
        }