Fixed: Use std::vector instead of CUniquePtr for arrays

--HG--
branch : develop
This commit is contained in:
kervala 2016-12-11 12:31:24 +01:00
parent 34d454c835
commit 106c924f49
2 changed files with 14 additions and 14 deletions

View file

@ -121,8 +121,8 @@ void CSnapshotToolDlg::stringFromRegistry(HKEY hKey, const TCHAR *name, CString
return; return;
} }
CUniquePtr<TCHAR[]> tmpDest(new TCHAR[size]); std::vector<TCHAR> tmpDest(size);
result = RegQueryValueEx(hKey, name, NULL, &type, (BYTE*)tmpDest.get(), &size); result = RegQueryValueEx(hKey, name, NULL, &type, (BYTE*)&tmpDest[0], &size);
if (result != ERROR_SUCCESS) if (result != ERROR_SUCCESS)
{ {
@ -130,7 +130,7 @@ void CSnapshotToolDlg::stringFromRegistry(HKEY hKey, const TCHAR *name, CString
return; return;
} }
dest = tmpDest.get(); dest = &tmpDest[0];
} }

View file

@ -196,26 +196,26 @@ bool unpackLZMA(const std::string &lzmaFile, const std::string &destFileName)
} }
// allocate input buffer for props // allocate input buffer for props
CUniquePtr<uint8[]> propsBuffer(new uint8[LZMA_PROPS_SIZE]); std::vector<uint8> propsBuffer(LZMA_PROPS_SIZE);
// size of LZMA content // size of LZMA content
inSize -= LZMA_PROPS_SIZE + 8; inSize -= LZMA_PROPS_SIZE + 8;
// allocate input buffer for lzma data // allocate input buffer for lzma data
CUniquePtr<uint8[]> inBuffer(new uint8[inSize]); std::vector<uint8> inBuffer(inSize);
uint64 fileSize = 0; uint64 fileSize = 0;
try try
{ {
// read props // read props
inStream.serialBuffer(propsBuffer.get(), LZMA_PROPS_SIZE); inStream.serialBuffer(&propsBuffer[0], LZMA_PROPS_SIZE);
// read uncompressed size // read uncompressed size
inStream.serial(fileSize); inStream.serial(fileSize);
// read lzma content // read lzma content
inStream.serialBuffer(inBuffer.get(), inSize); inStream.serialBuffer(&inBuffer[0], inSize);
} }
catch(const EReadError &e) catch(const EReadError &e)
{ {
@ -224,14 +224,14 @@ bool unpackLZMA(const std::string &lzmaFile, const std::string &destFileName)
} }
// allocate the output buffer // allocate the output buffer
CUniquePtr<uint8[]> outBuffer(new uint8[fileSize]); std::vector<uint8> outBuffer(fileSize);
// in and out file sizes // in and out file sizes
SizeT outProcessed = (SizeT)fileSize; SizeT outProcessed = (SizeT)fileSize;
SizeT inProcessed = (SizeT)inSize; SizeT inProcessed = (SizeT)inSize;
// decompress the file in memory // decompress the file in memory
sint res = LzmaUncompress(outBuffer.get(), &outProcessed, inBuffer.get(), &inProcessed, propsBuffer.get(), LZMA_PROPS_SIZE); sint res = LzmaUncompress(&outBuffer[0], &outProcessed, &inBuffer[0], &inProcessed, &propsBuffer[0], LZMA_PROPS_SIZE);
if (res != 0 || outProcessed != fileSize) if (res != 0 || outProcessed != fileSize)
{ {
@ -245,7 +245,7 @@ bool unpackLZMA(const std::string &lzmaFile, const std::string &destFileName)
try try
{ {
// write content // write content
outStream.serialBuffer(outBuffer.get(), (uint)fileSize); outStream.serialBuffer(&outBuffer[0], (uint)fileSize);
} }
catch(const EFile &e) catch(const EFile &e)
{ {
@ -273,12 +273,12 @@ bool packLZMA(const std::string &srcFileName, const std::string &lzmaFileName)
} }
// allocate input buffer // allocate input buffer
CUniquePtr<uint8[]> inBuffer(new uint8[inSize]); std::vector<uint8> inBuffer(inSize);
try try
{ {
// read file in buffer // read file in buffer
inStream.serialBuffer(inBuffer.get(), inSize); inStream.serialBuffer(&inBuffer[0], inSize);
} }
catch(const EReadError &e) catch(const EReadError &e)
{ {
@ -288,11 +288,11 @@ bool packLZMA(const std::string &srcFileName, const std::string &lzmaFileName)
// allocate output buffer // allocate output buffer
size_t outSize = (11 * inSize / 10) + 65536; // worst case = 1.1 * size + 64K size_t outSize = (11 * inSize / 10) + 65536; // worst case = 1.1 * size + 64K
CUniquePtr<uint8[]> outBuffer(new uint8[outSize]); std::vector<uint8> outBuffer(outSize);
// allocate buffer for props // allocate buffer for props
size_t outPropsSize = LZMA_PROPS_SIZE; size_t outPropsSize = LZMA_PROPS_SIZE;
CUniquePtr<uint8[]> outProps(new uint8[outPropsSize]); std::vector<uint8> outProps(outPropsSize);
// compress with best compression and other default settings // compress with best compression and other default settings
sint res = LzmaCompress(outBuffer.get(), &outSize, inBuffer.get(), inSize, outProps.get(), &outPropsSize, 9, 1 << 27, -1, -1, -1, -1, 1); sint res = LzmaCompress(outBuffer.get(), &outSize, inBuffer.get(), inSize, outProps.get(), &outPropsSize, 9, 1 << 27, -1, -1, -1, -1, 1);