Mercurial > vba-linux
comparison 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 |
comparison
equal
deleted
inserted
replaced
0:8ced16adf2e1 | 1:f9f4f1b99eed |
---|---|
1 // ByteSwap.cpp | |
2 | |
3 #include "StdAfx.h" | |
4 | |
5 #include "ByteSwap.h" | |
6 | |
7 STDMETHODIMP CByteSwap2::Init() { return S_OK; } | |
8 | |
9 STDMETHODIMP_(UInt32) CByteSwap2::Filter(Byte *data, UInt32 size) | |
10 { | |
11 const UInt32 kStep = 2; | |
12 UInt32 i; | |
13 for (i = 0; i + kStep <= size; i += kStep) | |
14 { | |
15 Byte b = data[i]; | |
16 data[i] = data[i + 1]; | |
17 data[i + 1] = b; | |
18 } | |
19 return i; | |
20 } | |
21 | |
22 STDMETHODIMP CByteSwap4::Init() { return S_OK; } | |
23 | |
24 STDMETHODIMP_(UInt32) CByteSwap4::Filter(Byte *data, UInt32 size) | |
25 { | |
26 const UInt32 kStep = 4; | |
27 UInt32 i; | |
28 for (i = 0; i + kStep <= size; i += kStep) | |
29 { | |
30 Byte b0 = data[i]; | |
31 Byte b1 = data[i + 1]; | |
32 data[i] = data[i + 3]; | |
33 data[i + 1] = data[i + 2]; | |
34 data[i + 2] = b1; | |
35 data[i + 3] = b0; | |
36 } | |
37 return i; | |
38 } |