X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/44379ce6fa20294cf83e5f65cc2006b1ea8be6c1..3e822cd8d0bdf04cd2c7a3dddff61dcc211f7439:/src/common/ipcbase.cpp diff --git a/src/common/ipcbase.cpp b/src/common/ipcbase.cpp index 9d7c3dab29..31f3cab4bd 100644 --- a/src/common/ipcbase.cpp +++ b/src/common/ipcbase.cpp @@ -5,14 +5,10 @@ // Modified by: // Created: 04/01/98 // RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license +// Copyright: (c) Julian Smart +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "ipcbase.h" -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -30,9 +26,11 @@ IMPLEMENT_CLASS(wxServerBase, wxObject) IMPLEMENT_CLASS(wxClientBase, wxObject) IMPLEMENT_CLASS(wxConnectionBase, wxObject) -wxConnectionBase::wxConnectionBase(wxChar *buffer, int size) - : m_buffer(buffer), m_buffersize(size), - m_deletebufferwhendone(false), m_connected(true) +wxConnectionBase::wxConnectionBase(wxChar *buffer, int bytes) + : m_connected(true), + m_buffer(buffer), + m_buffersize(bytes), + m_deletebufferwhendone(false) { if ( buffer == (wxChar *)NULL ) { // behave like next constructor @@ -42,14 +40,20 @@ wxConnectionBase::wxConnectionBase(wxChar *buffer, int size) } wxConnectionBase::wxConnectionBase() - : m_buffersize(0), m_buffer(NULL), m_deletebufferwhendone(true), - m_connected(true) + : m_connected(true), + m_buffer(NULL), + m_buffersize(0), + m_deletebufferwhendone(true) { } -wxConnectionBase::wxConnectionBase(wxConnectionBase& copy) - : m_buffer(copy.m_buffer), m_buffersize(copy.m_buffersize), - m_deletebufferwhendone(false), m_connected(copy.m_connected) +wxConnectionBase::wxConnectionBase(const wxConnectionBase& copy) + : wxObject(), + m_connected(copy.m_connected), + m_buffer(copy.m_buffer), + m_buffersize(copy.m_buffersize), + m_deletebufferwhendone(false) + { // copy constructor would require ref-counted pointer to buffer wxFAIL_MSG( _T("Copy constructor of wxConnectionBase not implemented") ); @@ -70,9 +74,12 @@ wxChar *wxConnectionBase::GetBufferAtLeast( size_t bytes ) { // need to resize buffer if ( m_deletebufferwhendone ) { // we're in charge of buffer, increase it - if ( !m_buffer ) + if ( m_buffer ) delete m_buffer; - m_buffer = new wxChar[bytes]; + // the argument specifies **byte size**, but m_buffer is of type + // wxChar. Under unicode: sizeof(wxChar) > 1, so the buffer size is + // bytes / sizeof(wxChar) rounded upwards. + m_buffer = new wxChar[(bytes + sizeof(wxChar) - 1) / sizeof(wxChar)]; m_buffersize = bytes; return m_buffer; } // user-supplied buffer, fail