annotate src/win32/7zip/7z/CPP/7zip/Compress/ByteSwap.cpp @ 1:f9f4f1b99eed

importing src directory
author Robert McIntyre <rlm@mit.edu>
date Sat, 03 Mar 2012 10:31:27 -0600
parents
children
rev   line source
rlm@1 1 // ByteSwap.cpp
rlm@1 2
rlm@1 3 #include "StdAfx.h"
rlm@1 4
rlm@1 5 #include "ByteSwap.h"
rlm@1 6
rlm@1 7 STDMETHODIMP CByteSwap2::Init() { return S_OK; }
rlm@1 8
rlm@1 9 STDMETHODIMP_(UInt32) CByteSwap2::Filter(Byte *data, UInt32 size)
rlm@1 10 {
rlm@1 11 const UInt32 kStep = 2;
rlm@1 12 UInt32 i;
rlm@1 13 for (i = 0; i + kStep <= size; i += kStep)
rlm@1 14 {
rlm@1 15 Byte b = data[i];
rlm@1 16 data[i] = data[i + 1];
rlm@1 17 data[i + 1] = b;
rlm@1 18 }
rlm@1 19 return i;
rlm@1 20 }
rlm@1 21
rlm@1 22 STDMETHODIMP CByteSwap4::Init() { return S_OK; }
rlm@1 23
rlm@1 24 STDMETHODIMP_(UInt32) CByteSwap4::Filter(Byte *data, UInt32 size)
rlm@1 25 {
rlm@1 26 const UInt32 kStep = 4;
rlm@1 27 UInt32 i;
rlm@1 28 for (i = 0; i + kStep <= size; i += kStep)
rlm@1 29 {
rlm@1 30 Byte b0 = data[i];
rlm@1 31 Byte b1 = data[i + 1];
rlm@1 32 data[i] = data[i + 3];
rlm@1 33 data[i + 1] = data[i + 2];
rlm@1 34 data[i + 2] = b1;
rlm@1 35 data[i + 3] = b0;
rlm@1 36 }
rlm@1 37 return i;
rlm@1 38 }