diff options
author | tsepez <tsepez@chromium.org> | 2016-04-11 10:56:00 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-04-11 10:56:00 -0700 |
commit | 184b82553000a41fd0c90be56fa2f1c1503e2e9e (patch) | |
tree | 568f3877f8f51cc80e8aacb355ba07674e673e9c /core/fxcrt/fx_basic_bstring.cpp | |
parent | f3209c1fe0fdea79bf2f4e2b6f77ea4ef5db1ad2 (diff) | |
download | pdfium-184b82553000a41fd0c90be56fa2f1c1503e2e9e.tar.xz |
Avoid copying in TrimRight() and TrimLeft() if possible.
Make Byte and Wide code identical while at it.
Review URL: https://codereview.chromium.org/1877553002
Diffstat (limited to 'core/fxcrt/fx_basic_bstring.cpp')
-rw-r--r-- | core/fxcrt/fx_basic_bstring.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/core/fxcrt/fx_basic_bstring.cpp b/core/fxcrt/fx_basic_bstring.cpp index 5b9c683c53..4a48539578 100644 --- a/core/fxcrt/fx_basic_bstring.cpp +++ b/core/fxcrt/fx_basic_bstring.cpp @@ -841,7 +841,6 @@ void CFX_ByteString::TrimRight(const CFX_ByteStringC& pTargets) { if (!m_pData || pTargets.IsEmpty()) { return; } - ReallocBeforeWrite(m_pData->m_nDataLength); FX_STRSIZE pos = GetLength(); if (pos < 1) { return; @@ -858,6 +857,7 @@ void CFX_ByteString::TrimRight(const CFX_ByteStringC& pTargets) { pos--; } if (pos < m_pData->m_nDataLength) { + ReallocBeforeWrite(m_pData->m_nDataLength); m_pData->m_String[pos] = 0; m_pData->m_nDataLength = pos; } @@ -879,7 +879,6 @@ void CFX_ByteString::TrimLeft(const CFX_ByteStringC& pTargets) { if (len < 1) return; - ReallocBeforeWrite(len); FX_STRSIZE pos = 0; while (pos < len) { FX_STRSIZE i = 0; @@ -892,6 +891,7 @@ void CFX_ByteString::TrimLeft(const CFX_ByteStringC& pTargets) { pos++; } if (pos) { + ReallocBeforeWrite(len); FX_STRSIZE nDataLength = len - pos; FXSYS_memmove(m_pData->m_String, m_pData->m_String + pos, (nDataLength + 1) * sizeof(FX_CHAR)); |