From: Václav Slavík Date: Mon, 31 May 2004 22:05:59 +0000 (+0000) Subject: don't call CopyBeforeWrite when returning non-const interator if the string is empty... X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/ac3c86ee7ddab0a1a5f025fb98ce9b992db84623 don't call CopyBeforeWrite when returning non-const interator if the string is empty -- avoids assert and is not needed anyway since the iterator is never valid git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27539 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/include/wx/string.h b/include/wx/string.h index 6667f8fae8..2ae0085719 100644 --- a/include/wx/string.h +++ b/include/wx/string.h @@ -429,9 +429,9 @@ public: const_iterator end() const { return m_pchData + length(); } // first valid index position - iterator begin() { CopyBeforeWrite(); return m_pchData; } + iterator begin(); // position one after the last valid one - iterator end() { CopyBeforeWrite(); return m_pchData + length(); } + iterator end(); // insert another string wxStringBase& insert(size_t nPos, const wxStringBase& str) diff --git a/src/common/string.cpp b/src/common/string.cpp index 9b1de655cd..70473982fd 100644 --- a/src/common/string.cpp +++ b/src/common/string.cpp @@ -407,6 +407,20 @@ bool wxStringBase::Alloc(size_t nLen) //else: we've already got enough return TRUE; } + +wxStringBase::iterator wxStringBase::begin() +{ + if (length() > 0) + CopyBeforeWrite(); + return m_pchData; +} + +wxStringBase::iterator wxStringBase::end() +{ + if (length() > 0) + CopyBeforeWrite(); + return m_pchData + length(); +} wxStringBase::iterator wxStringBase::erase(iterator it) {