Mercurial > vba-linux
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 } |