diff options
Diffstat (limited to 'core/fxcrt/cfx_bytestring.cpp')
-rw-r--r-- | core/fxcrt/cfx_bytestring.cpp | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/core/fxcrt/cfx_bytestring.cpp b/core/fxcrt/cfx_bytestring.cpp index 6e01933682..5dcaf613a0 100644 --- a/core/fxcrt/cfx_bytestring.cpp +++ b/core/fxcrt/cfx_bytestring.cpp @@ -361,12 +361,10 @@ void CFX_ByteString::AllocBeforeWrite(FX_STRSIZE nNewLength) { } void CFX_ByteString::ReleaseBuffer(FX_STRSIZE nNewLength) { + ASSERT(nNewLength >= 0); if (!m_pData) return; - if (nNewLength == -1) - nNewLength = FXSYS_strlen(m_pData->m_String); - nNewLength = std::min(nNewLength, m_pData->m_nAllocLength); if (nNewLength == 0) { clear(); @@ -507,7 +505,7 @@ void CFX_ByteString::FormatV(const char* pFormat, va_list argList) { // a terminating NUL that's not included in nMaxLen. memset(m_pData->m_String, 0, nMaxLen + 1); vsnprintf(m_pData->m_String, nMaxLen + 1, pFormat, argListSave); - ReleaseBuffer(); + ReleaseBuffer(GetStringLength()); } } va_end(argListSave); |