view 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
line wrap: on
line source
1 // ByteSwap.cpp
3 #include "StdAfx.h"
5 #include "ByteSwap.h"
7 STDMETHODIMP CByteSwap2::Init() { return S_OK; }
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 }
22 STDMETHODIMP CByteSwap4::Init() { return S_OK; }
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 }