From 735d1db6cb94887ace96dbc17e453b992b297363 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Fri, 12 Oct 2001 14:09:54 +0000 Subject: [PATCH] made wxString::assign() more efficient (don't force buffer reallocation) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@11951 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/string.h | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/include/wx/string.h b/include/wx/string.h index c7c6893e30..4f6d342f9e 100644 --- a/include/wx/string.h +++ b/include/wx/string.h @@ -362,14 +362,14 @@ public: bool IsEmpty() const { return Len() == 0; } // empty string is "FALSE", so !str will return TRUE bool operator!() const { return IsEmpty(); } + // truncate the string to given length + wxString& Truncate(size_t uiLen); // empty string contents void Empty() { - if ( !IsEmpty() ) - Reinit(); + Truncate(0); - // should be empty - wxASSERT( GetStringData()->nDataLength == 0 ); + wxASSERT_MSG( IsEmpty(), _T("string not empty after call to Empty()?") ); } // empty the string and free memory void Clear() @@ -671,8 +671,6 @@ public: wxString& Trim(bool bFromRight = TRUE); // add nCount copies chPad in the beginning or at the end (default) wxString& Pad(size_t nCount, wxChar chPad = wxT(' '), bool bFromRight = TRUE); - // truncate string to given length - wxString& Truncate(size_t uiLen); // searching and replacing // searching (return starting index, or -1 if not found) @@ -831,16 +829,17 @@ public: wxString& append(size_t n, wxChar ch) { return Pad(n, ch); } // same as `this_string = str' - wxString& assign(const wxString& str) { return (*this) = str; } + wxString& assign(const wxString& str) + { return *this = str; } // same as ` = str[pos..pos + n] wxString& assign(const wxString& str, size_t pos, size_t n) - { return *this = wxString((const wxChar *)str + pos, n); } + { Empty(); return Append(str.c_str() + pos, n); } // same as `= first n (or all if n == npos) characters of sz' wxString& assign(const wxChar *sz, size_t n = npos) - { return *this = wxString(sz, n); } + { Empty(); return Append(sz, n == npos ? wxStrlen(sz) : n); } // same as `= n copies of ch' wxString& assign(size_t n, wxChar ch) - { return *this = wxString(ch, n); } + { Empty(); return Append(ch, n); } // insert another string wxString& insert(size_t nPos, const wxString& str); -- 2.45.2