Merge pull request #554 from deplinenoise/ppc_fixes
[mono.git] / mono / metadata / marshal.c
index f7ecf78aeee7ce1a81e033f53cf54714faa08b8a..1e0dedd604e02e211014bc6d3401a027c5d5e108 100644 (file)
@@ -4375,7 +4375,12 @@ emit_invoke_call (MonoMethodBuilder *mb, MonoMethod *method,
 
        if (sig->hasthis) {
                if (method->string_ctor) {
-                       mono_mb_emit_ptr (mb, string_dummy);
+                       if (mono_gc_is_moving ()) {
+                               mono_mb_emit_ptr (mb, &string_dummy);
+                               mono_mb_emit_byte (mb, CEE_LDIND_REF);
+                       } else {
+                               mono_mb_emit_ptr (mb, string_dummy);
+                       }
                } else {
                        mono_mb_emit_ldarg (mb, 0);
                }