diff options
Diffstat (limited to 'src/libs/7zip/win/CPP/7zip/Common/UniqBlocks.cpp')
-rw-r--r-- | src/libs/7zip/win/CPP/7zip/Common/UniqBlocks.cpp | 56 |
1 files changed, 0 insertions, 56 deletions
diff --git a/src/libs/7zip/win/CPP/7zip/Common/UniqBlocks.cpp b/src/libs/7zip/win/CPP/7zip/Common/UniqBlocks.cpp deleted file mode 100644 index 7fcc88f5e..000000000 --- a/src/libs/7zip/win/CPP/7zip/Common/UniqBlocks.cpp +++ /dev/null @@ -1,56 +0,0 @@ -// UniqBlocks.cpp - -#include "StdAfx.h" - -#include "UniqBlocks.h" - -int CUniqBlocks::AddUniq(const Byte *data, size_t size) -{ - unsigned left = 0, right = Sorted.Size(); - while (left != right) - { - unsigned mid = (left + right) / 2; - int index = Sorted[mid]; - const CByteBuffer &buf = Bufs[index]; - size_t sizeMid = buf.Size(); - if (size < sizeMid) - right = mid; - else if (size > sizeMid) - left = mid + 1; - else - { - int cmp = memcmp(data, buf, size); - if (cmp == 0) - return index; - if (cmp < 0) - right = mid; - else - left = mid + 1; - } - } - int index = Bufs.Size(); - Sorted.Insert(left, index); - CByteBuffer &buf = Bufs.AddNew(); - buf.CopyFrom(data, size); - return index; -} - -UInt64 CUniqBlocks::GetTotalSizeInBytes() const -{ - UInt64 size = 0; - FOR_VECTOR (i, Bufs) - size += Bufs[i].Size(); - return size; -} - -void CUniqBlocks::GetReverseMap() -{ - unsigned num = Sorted.Size(); - BufIndexToSortedIndex.ClearAndSetSize(num); - int *p = &BufIndexToSortedIndex[0]; - unsigned i; - for (i = 0; i < num; i++) - p[i] = 0; - for (i = 0; i < num; i++) - p[Sorted[i]] = i; -} |