Browse Source

Worked around some UB sanitiser warnings in Projucer

tags/2021-05-28
jules 7 years ago
parent
commit
d9fa1c4602
2 changed files with 10 additions and 9 deletions
  1. +6
    -6
      extras/Projucer/Source/Utility/Helpers/jucer_FileHelpers.cpp
  2. +4
    -3
      extras/Projucer/Source/Utility/Helpers/jucer_FileHelpers.h

+ 6
- 6
extras/Projucer/Source/Utility/Helpers/jucer_FileHelpers.cpp View File

@@ -30,9 +30,9 @@
//==============================================================================
namespace FileHelpers
{
static int64 calculateMemoryHashCode (const void* data, const size_t numBytes)
static uint64 calculateMemoryHashCode (const void* data, size_t numBytes)
{
int64 t = 0;
uint64 t = 0;
for (size_t i = 0; i < numBytes; ++i)
t = t * 65599 + static_cast<const uint8*> (data)[i];
@@ -40,9 +40,9 @@ namespace FileHelpers
return t;
}
int64 calculateStreamHashCode (InputStream& in)
uint64 calculateStreamHashCode (InputStream& in)
{
int64 t = 0;
uint64 t = 0;
const int bufferSize = 4096;
HeapBlock<uint8> buffer;
@@ -50,7 +50,7 @@ namespace FileHelpers
for (;;)
{
const int num = in.read (buffer, bufferSize);
auto num = in.read (buffer, bufferSize);
if (num <= 0)
break;
@@ -62,7 +62,7 @@ namespace FileHelpers
return t;
}
int64 calculateFileHashCode (const File& file)
uint64 calculateFileHashCode (const File& file)
{
std::unique_ptr<FileInputStream> stream (file.createInputStream());
return stream != nullptr ? calculateStreamHashCode (*stream) : 0;


+ 4
- 3
extras/Projucer/Source/Utility/Helpers/jucer_FileHelpers.h View File

@@ -30,8 +30,8 @@
//==============================================================================
namespace FileHelpers
{
int64 calculateStreamHashCode (InputStream& stream);
int64 calculateFileHashCode (const File& file);
uint64 calculateStreamHashCode (InputStream&);
uint64 calculateFileHashCode (const File&);
bool overwriteFileWithNewDataIfDifferent (const File& file, const void* data, size_t numBytes);
bool overwriteFileWithNewDataIfDifferent (const File& file, const MemoryOutputStream& newData);
@@ -90,5 +90,6 @@ struct FileModificationDetector
private:
File file;
Time fileModificationTime;
int64 fileHashCode, fileSize;
uint64 fileHashCode = 0;
int64 fileSize = -1;
};

Loading…
Cancel
Save