X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8dffb6b1a7ddfbb22667d9544dbe11ca49ca046c..db51298a741c46719a70884f750befc3b5749036:/include/wx/buffer.h diff --git a/include/wx/buffer.h b/include/wx/buffer.h index 574d0df073..ec0e1fc765 100644 --- a/include/wx/buffer.h +++ b/include/wx/buffer.h @@ -15,9 +15,7 @@ #include "wx/chartype.h" #include "wx/wxcrtbase.h" -#ifndef __WXPALMOS5__ #include // malloc() and free() -#endif // ! __WXPALMOS5__ class WXDLLIMPEXP_FWD_BASE wxCStrData; @@ -95,7 +93,7 @@ public: // Creates "owned" buffer, i.e. takes over ownership of 'str' and frees it // in dtor (if ref.count reaches 0). static - const wxScopedCharTypeBuffer CreateOwned(const CharType *str, + const wxScopedCharTypeBuffer CreateOwned(CharType *str, size_t len = wxNO_LEN ) { if ( len == wxNO_LEN ) @@ -103,7 +101,7 @@ public: wxScopedCharTypeBuffer buf; if ( str ) - buf.m_data = new Data(StrCopy(str, len), len); + buf.m_data = new Data(str, len); return buf; } @@ -260,7 +258,7 @@ public: { if ( len == wxNO_LEN ) len = wxStrlen(str); - this->m_data = new Data(StrCopy(str, len), len); + this->m_data = new Data(this->StrCopy(str, len), len); } else { @@ -295,7 +293,7 @@ public: wxCharTypeBuffer(const wxScopedCharTypeBuffer& src) { - MakeOwnedCopyOf(src); + this->MakeOwnedCopyOf(src); } wxCharTypeBuffer& operator=(const wxScopedCharTypeBuffer& src) @@ -314,6 +312,10 @@ public: if ( !str ) return false; + // For consistency with the ctor taking just the length, NUL-terminate + // the buffer. + str[len] = (CharType)0; + if ( this->m_data == this->GetNullData() ) { this->m_data = new Data(str, len); @@ -537,6 +539,8 @@ public: size_t GetBufSize() const { return m_bufdata->m_size; } size_t GetDataLen() const { return m_bufdata->m_len; } + bool IsEmpty() const { return GetDataLen() == 0; } + void SetBufSize(size_t size) { m_bufdata->ResizeIfNeeded(size); } void SetDataLen(size_t len) { @@ -544,6 +548,8 @@ public: m_bufdata->m_len = len; } + void Clear() { SetDataLen(0); } + // Ensure the buffer is big enough and return a pointer to it void *GetWriteBuf(size_t sizeNeeded) {