X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmetadata%2Freflection.c;h=627604406fceefe18db221ba5fa335ab50bcb0e6;hb=6b94388f8ec7403206260926e0dfccdece3d5eb8;hp=eddd5dc570f8fb0d819d253181d7aabf62d2686c;hpb=8998e08d7d63a80f621eaae8b8d9efdd4e42a8cc;p=mono.git diff --git a/mono/metadata/reflection.c b/mono/metadata/reflection.c index eddd5dc570f..627604406fc 100644 --- a/mono/metadata/reflection.c +++ b/mono/metadata/reflection.c @@ -5091,7 +5091,7 @@ create_dynamic_mono_image (MonoDynamicAssembly *assembly, char *assembly_name, c #else image = g_new0 (MonoDynamicImage, 1); #endif - + mono_profiler_module_event (&image->image, MONO_PROFILE_START_LOAD); /*g_print ("created image %p\n", image);*/ @@ -5256,6 +5256,17 @@ mono_dynamic_image_free (MonoDynamicImage *image) } } +void +mono_dynamic_image_free_image (MonoDynamicImage *image) +{ + /* See create_dynamic_mono_image () */ +#if HAVE_BOEHM_GC + /* Allocated using GC_MALLOC */ +#else + g_free (image); +#endif +} + #ifndef DISABLE_REFLECTION_EMIT /* @@ -7951,7 +7962,7 @@ handle_type: val = load_cattr_value (image, &subc->byval_arg, p, end); obj = mono_object_new (mono_domain_get (), subc); g_assert (!subc->has_references); - mono_gc_memmove ((char*)obj + sizeof (MonoObject), val, mono_class_value_size (subc, NULL)); + mono_gc_memmove_atomic ((char*)obj + sizeof (MonoObject), val, mono_class_value_size (subc, NULL)); g_free (val); return obj; }