Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/elfmz/far2l.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorelfmz <fenix1905@tut.by>2022-11-06 18:01:27 +0300
committerelfmz <fenix1905@tut.by>2022-11-06 18:01:27 +0300
commitc42eba333cf725e615cc01fbb105817aba0389c2 (patch)
tree96b067b67941d759a95ca2462d9036278739090c /far2l/src/base
parent2132a5070d45ec4b547b81182338adf68a9daeb7 (diff)
minor/cosmetic
Diffstat (limited to 'far2l/src/base')
-rw-r--r--far2l/src/base/FARString.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/far2l/src/base/FARString.cpp b/far2l/src/base/FARString.cpp
index cacaaabb..7dc12c82 100644
--- a/far2l/src/base/FARString.cpp
+++ b/far2l/src/base/FARString.cpp
@@ -302,11 +302,13 @@ FARString& FARString::Append(wchar_t Ch, size_t Count)
FARString& FARString::Insert(size_t Pos, wchar_t Ch, size_t Count)
{
- size_t nNewLength = m_pContent->GetLength() + Count;
- PrepareForModify(nNewLength);
- wmemmove(m_pContent->GetData() + Count, m_pContent->GetData(), m_pContent->GetLength());
- wmemset(m_pContent->GetData(), Ch, Count);
- m_pContent->SetLength(nNewLength);
+ if (LIKELY(Pos <= m_pContent->GetLength())) {
+ size_t nNewLength = m_pContent->GetLength() + Count;
+ PrepareForModify(nNewLength);
+ wmemmove(m_pContent->GetData() + Pos + Count, m_pContent->GetData() + Pos, m_pContent->GetLength() - Pos);
+ wmemset(m_pContent->GetData() + Pos, Ch, Count);
+ m_pContent->SetLength(nNewLength);
+ }
return *this;
}