Patch: fix alignment issues in metafile.c for Sparc-Solaris
Warren_Baird at cimmetry.com
Warren_Baird at cimmetry.com
Thu May 16 11:19:59 CDT 2002
ChangeLog:
- fixed some alignment issues in objects/metafile.c
Warren Baird : Warren_Baird at cimmetry.com
diff -ur clean/wine-20020509/objects/metafile.c wine-20020509/objects/metafile.c
--- clean/wine-20020509/objects/metafile.c Wed Apr 3 17:46:32 2002
+++ wine-20020509/objects/metafile.c Wed May 15 17:02:15 2002
@@ -530,7 +530,13 @@
offset = mh->mtHeaderSize * 2;
while (offset < mh->mtSize * 2)
{
- mr = (METARECORD *)((char *)mh + offset);
+#ifndef ALLOW_UNALIGNED_ACCESS
+ METARECORD tmpMR;
+ memcpy(&tmpMR,((char *)mh + offset),sizeof(METARECORD));
+ mr = &tmpMR;
+#else
+ mr = (METARECORD *)((char *)mh + offset) ;
+#endif
TRACE("offset=%04x,size=%08lx\n",
offset, mr->rdSize);
if (!mr->rdSize) {
@@ -636,7 +642,13 @@
while (offset < (mh->mtSize * 2))
{
+#ifndef ALLOW_UNALIGNED_ACCESS
+ METARECORD tmpMR;
+ memcpy(&tmpMR,((char *)mh + offset),sizeof(METARECORD));
+ mr = &tmpMR;
+#else
mr = (METARECORD *)((char *)mh + offset);
+#endif
if (!MF_CallTo16_word_wllwl( lpEnumFunc, hdc, spht,
MAKESEGPTR( seg + (HIWORD(offset) <<
__AHSHIFT), LOWORD(offset) ),
@@ -722,6 +734,13 @@
while (offset < (mh->mtSize * 2))
{
mr = (METARECORD *)((char *)mh + offset);
+#ifndef ALLOW_UNALIGNED_ACCESS
+ METARECORD tmpMR;
+ memcpy(&tmpMR,((char *)mh + offset),sizeof(METARECORD));
+ mr = &tmpMR;
+#else
+ mr = (METARECORD *)((char *)mh + offset) ;
+#endif
if(mr->rdFunction == META_EOF) {
TRACE("Got META_EOF so stopping\n");
break;
More information about the wine-patches
mailing list