Fixed incorrect pointer arithmetic on SGen for MSVC.
authorJonathan Lima <greenboxal@gmail.com>
Thu, 8 Aug 2013 20:51:04 +0000 (17:51 -0300)
committerZoltan Varga <vargaz@gmail.com>
Mon, 12 Aug 2013 17:53:21 +0000 (19:53 +0200)
From:
https://github.com/mono/mono/pull/724

mono/metadata/sgen-los.c

index b273a5ab822bd0cf5f35c3a3590f6c5836723fff..5d51db7d8671de70ed44d642d4065b57a8c640f3 100644 (file)
@@ -568,7 +568,11 @@ sgen_los_object_size (LOSObject *obj)
 LOSObject*
 sgen_los_header_for_object (char *data)
 {
+#if _MSC_VER
+       return (LOSObject*)(data - (int)(&(((LOSObject*)0)->data)));
+#else
        return (LOSObject*)(data - sizeof (LOSObject));
+#endif
 }
 
 void