Fix for problems signaled by clang static analyzer
Former-commit-id: 2ad296acdc783054198a7b2f2f34c36d9cc22958
This commit is contained in:
parent
43e6424969
commit
abb5ab3596
|
|
@ -132,7 +132,7 @@ namespace Nz
|
||||||
else
|
else
|
||||||
difference = sequence - sequence2;
|
difference = sequence - sequence2;
|
||||||
|
|
||||||
return 0;
|
return difference;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
|
|
||||||
|
|
@ -143,7 +143,18 @@ namespace Nz
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
mode_t permissions; // TODO : get permission from first file
|
mode_t permissions;
|
||||||
|
struct stat sb;
|
||||||
|
if (fstat(fd1, &sb) == -1) // get permission from first file
|
||||||
|
{
|
||||||
|
NazaraWarning("Could not get permissions of source file");
|
||||||
|
permissions = S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
permissions = sb.st_mode & ~S_IFMT; // S_IFMT: bit mask for the file type bit field -> ~S_IFMT: general permissions
|
||||||
|
}
|
||||||
|
|
||||||
int fd2 = open64(targetPath.GetConstBuffer(), O_WRONLY | O_TRUNC, permissions);
|
int fd2 = open64(targetPath.GetConstBuffer(), O_WRONLY | O_TRUNC, permissions);
|
||||||
if (fd2 == -1)
|
if (fd2 == -1)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -2827,21 +2827,15 @@ namespace Nz
|
||||||
{
|
{
|
||||||
const char* c = oldCharacters;
|
const char* c = oldCharacters;
|
||||||
char character = Detail::ToLower(*ptr);
|
char character = Detail::ToLower(*ptr);
|
||||||
bool found = false;
|
|
||||||
|
std::ptrdiff_t offset = ptr - m_sharedString->string.get();
|
||||||
|
EnsureOwnership();
|
||||||
|
ptr = &m_sharedString->string[offset];
|
||||||
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
if (character == Detail::ToLower(*c))
|
if (character == Detail::ToLower(*c))
|
||||||
{
|
{
|
||||||
if (!found)
|
|
||||||
{
|
|
||||||
std::ptrdiff_t offset = ptr - m_sharedString->string.get();
|
|
||||||
|
|
||||||
EnsureOwnership();
|
|
||||||
|
|
||||||
ptr = &m_sharedString->string[offset];
|
|
||||||
found = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
*ptr = replaceCharacter;
|
*ptr = replaceCharacter;
|
||||||
++count;
|
++count;
|
||||||
break;
|
break;
|
||||||
|
|
@ -2853,19 +2847,12 @@ namespace Nz
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
bool found = false;
|
std::ptrdiff_t offset = ptr - m_sharedString->string.get();
|
||||||
|
EnsureOwnership();
|
||||||
|
ptr = &m_sharedString->string[offset];
|
||||||
|
|
||||||
while ((ptr = std::strpbrk(ptr, oldCharacters)) != nullptr)
|
while ((ptr = std::strpbrk(ptr, oldCharacters)) != nullptr)
|
||||||
{
|
{
|
||||||
if (!found)
|
|
||||||
{
|
|
||||||
std::ptrdiff_t offset = ptr - m_sharedString->string.get();
|
|
||||||
|
|
||||||
EnsureOwnership();
|
|
||||||
|
|
||||||
ptr = &m_sharedString->string[offset];
|
|
||||||
found = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
*ptr++ = replaceCharacter;
|
*ptr++ = replaceCharacter;
|
||||||
++count;
|
++count;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -464,7 +464,6 @@ namespace Nz
|
||||||
void DepthRenderTechnique::DrawOpaqueModels(const SceneData& sceneData, ForwardRenderQueue::Layer& layer) const
|
void DepthRenderTechnique::DrawOpaqueModels(const SceneData& sceneData, ForwardRenderQueue::Layer& layer) const
|
||||||
{
|
{
|
||||||
const Shader* lastShader = nullptr;
|
const Shader* lastShader = nullptr;
|
||||||
const ShaderUniforms* shaderUniforms = nullptr;
|
|
||||||
|
|
||||||
for (auto& matIt : layer.opaqueModels)
|
for (auto& matIt : layer.opaqueModels)
|
||||||
{
|
{
|
||||||
|
|
@ -488,7 +487,7 @@ namespace Nz
|
||||||
if (shader != lastShader)
|
if (shader != lastShader)
|
||||||
{
|
{
|
||||||
// Index of uniforms in the shader
|
// Index of uniforms in the shader
|
||||||
shaderUniforms = GetShaderUniforms(shader);
|
GetShaderUniforms(shader);
|
||||||
lastShader = shader;
|
lastShader = shader;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -122,5 +122,25 @@ SCENARIO("String", "[CORE][STRING]")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
|
GIVEN("A string")
|
||||||
|
{
|
||||||
|
Nz::String replaceAny("abapeilomuky");
|
||||||
|
Nz::String replaceAnyWithCase("abapEilOmuky");
|
||||||
|
|
||||||
|
WHEN("We replace any of vowels after character 3")
|
||||||
|
{
|
||||||
|
unsigned int nbrOfChanges = replaceAny.ReplaceAny("aeiouy", '$', 3);
|
||||||
|
unsigned int nbrOfChangesWithCase = replaceAnyWithCase.ReplaceAny("AEIOUY", '$', 3);
|
||||||
|
|
||||||
|
THEN("These results are expected")
|
||||||
|
{
|
||||||
|
REQUIRE(replaceAny == "abap$$l$m$k$");
|
||||||
|
REQUIRE(nbrOfChanges == 5);
|
||||||
|
REQUIRE(replaceAnyWithCase == "abap$il$muky");
|
||||||
|
REQUIRE(nbrOfChangesWithCase == 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue