X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7c77f33480e32a3a5f142850ac0e9605d0c05381..f8b1df0b15f843b8f47efb9bee38f1de0fa95020:/include/wx/buffer.h diff --git a/include/wx/buffer.h b/include/wx/buffer.h index a18b85c762..d06fbf6fc1 100644 --- a/include/wx/buffer.h +++ b/include/wx/buffer.h @@ -105,9 +105,12 @@ public: wxCharTypeBuffer& operator=(const wxCharTypeBuffer& src) { - if ( m_owned ) - free(m_str); - CopyFrom(src); + if (&src != this) + { + if ( m_owned ) + free(m_str); + CopyFrom(src); + } return *this; } @@ -226,6 +229,13 @@ typedef wxWritableCharTypeBuffer wxWritableWCharBuffer; #define wxWX2WCbuf wxWCharBuffer #endif // Unicode/ANSI +// type of the value returned by wxString::utf8_str() +#if wxUSE_UNICODE_UTF8 + #define wxUTF8Buf char * +#else + #define wxUTF8Buf wxCharBuffer +#endif + // ---------------------------------------------------------------------------- // A class for holding growable data buffers (not necessarily strings) // ---------------------------------------------------------------------------- @@ -310,9 +320,12 @@ public: wxMemoryBuffer& operator=(const wxMemoryBuffer& src) { - m_bufdata->DecRef(); - m_bufdata = src.m_bufdata; - m_bufdata->IncRef(); + if (&src != this) + { + m_bufdata->DecRef(); + m_bufdata = src.m_bufdata; + m_bufdata->IncRef(); + } return *this; }