[Box Backup-dev] COMMIT r437 - box/trunk/lib/raidfile

boxbackup-dev at fluffy.co.uk boxbackup-dev at fluffy.co.uk
Sun Feb 12 13:12:30 GMT 2006


Author: chromi
Date: 2006-02-12 13:12:28 +0000 (Sun, 12 Feb 2006)
New Revision: 437

Modified:
   box/trunk/lib/raidfile/RaidFileWrite.cpp
Log:
Change "PPC workaround" to use union instead of memcpy().  All tests now pass.



Modified: box/trunk/lib/raidfile/RaidFileWrite.cpp
===================================================================
--- box/trunk/lib/raidfile/RaidFileWrite.cpp	2006-02-12 03:16:57 UTC (rev 436)
+++ box/trunk/lib/raidfile/RaidFileWrite.cpp	2006-02-12 13:12:28 UTC (rev 437)
@@ -461,11 +461,11 @@
 						ASSERT(sizeof(RaidFileRead::FileSizeType) == (2*sizeof(unsigned int)));
 						ASSERT(sizeof(RaidFileRead::FileSizeType) >= sizeof(off_t));
 						int sizePos = (blockSize/sizeof(unsigned int)) - 2;
-						RaidFileRead::FileSizeType sw = box_hton64(writeFileStat.st_size);
-						unsigned int psize[2];
-						::memcpy(psize, &sw, sizeof(RaidFileRead::FileSizeType));
-						pparity[sizePos+0] = pstripe1[sizePos+0] ^ psize[0];
-						pparity[sizePos+1] = pstripe1[sizePos+1] ^ psize[1];
+						union { RaidFileRead::FileSizeType l; unsigned int i[2]; } sw;
+
+						sw.l = box_hton64(writeFileStat.st_size);
+						pparity[sizePos+0] = pstripe1[sizePos+0] ^ sw.i[0];
+						pparity[sizePos+1] = pstripe1[sizePos+1] ^ sw.i[1];
 					}
 					else
 					{




More information about the Boxbackup-dev mailing list