diff --git a/src/Nazara/Core/String.cpp b/src/Nazara/Core/String.cpp index 20d1c1897..a57d89861 100644 --- a/src/Nazara/Core/String.cpp +++ b/src/Nazara/Core/String.cpp @@ -2827,15 +2827,21 @@ namespace Nz { const char* c = oldCharacters; char character = Detail::ToLower(*ptr); - - std::ptrdiff_t offset = ptr - m_sharedString->string.get(); - EnsureOwnership(); - ptr = &m_sharedString->string[offset]; - + bool found = false; do { 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; ++count; break; @@ -2847,12 +2853,19 @@ namespace Nz } else { - std::ptrdiff_t offset = ptr - m_sharedString->string.get(); - EnsureOwnership(); - ptr = &m_sharedString->string[offset]; - + bool found = false; 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; ++count; } diff --git a/src/Nazara/Graphics/DepthRenderTechnique.cpp b/src/Nazara/Graphics/DepthRenderTechnique.cpp index 8badefcc9..233eb9c72 100644 --- a/src/Nazara/Graphics/DepthRenderTechnique.cpp +++ b/src/Nazara/Graphics/DepthRenderTechnique.cpp @@ -464,6 +464,7 @@ namespace Nz void DepthRenderTechnique::DrawOpaqueModels(const SceneData& sceneData, ForwardRenderQueue::Layer& layer) const { const Shader* lastShader = nullptr; + const ShaderUniforms* shaderUniforms = nullptr; for (auto& matIt : layer.opaqueModels) { @@ -487,7 +488,7 @@ namespace Nz if (shader != lastShader) { // Index of uniforms in the shader - GetShaderUniforms(shader); + shaderUniforms = GetShaderUniforms(shader); lastShader = shader; }