Merge remote-tracking branch 'joncham/sgen-msvc2'
[mono.git] / mono / metadata / sgen-copy-object.h
index 767be65fc539ac71218aa53fc724e203e3aa7505..c1404df194360413fae4fdea5a88c38c6ff19cdc 100644 (file)
@@ -44,7 +44,13 @@ par_copy_object_no_checks (char *destination, MonoVTable *vt, void *obj, mword o
        DEBUG (9, g_assert (vt->klass->inited));
        DEBUG (9, fprintf (gc_debug_file, " (to %p, %s size: %lu)\n", destination, ((MonoObject*)obj)->vtable->klass->name, (unsigned long)objsize));
        binary_protocol_copy (obj, destination, vt, objsize);
-       
+
+       if (G_UNLIKELY (MONO_GC_OBJ_MOVED_ENABLED ())) {
+               int dest_gen = sgen_ptr_in_nursery (destination) ? GENERATION_NURSERY : GENERATION_OLD;
+               int src_gen = sgen_ptr_in_nursery (obj) ? GENERATION_NURSERY : GENERATION_OLD;
+               MONO_GC_OBJ_MOVED ((mword)destination, (mword)obj, dest_gen, src_gen, objsize, vt->klass->name_space, vt->klass->name);
+       }
+
 #ifdef __GNUC__
        if (objsize <= sizeof (gpointer) * 8) {
                mword *dest = (mword*)destination;