X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/01d0d0e57dc7c385a1a56294763b0e6486e65095..0aaa804e7019b8187e2d35dffba133b43af79533:/src/common/ipcbase.cpp diff --git a/src/common/ipcbase.cpp b/src/common/ipcbase.cpp index 7d74dca6ba..1d5075cb25 100644 --- a/src/common/ipcbase.cpp +++ b/src/common/ipcbase.cpp @@ -6,10 +6,10 @@ // Created: 04/01/98 // RCS-ID: $Id$ // Copyright: (c) Julian Smart -// Licence: wxWindows licence +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma implementation "ipcbase.h" #endif @@ -30,32 +30,33 @@ IMPLEMENT_CLASS(wxServerBase, wxObject) IMPLEMENT_CLASS(wxClientBase, wxObject) IMPLEMENT_CLASS(wxConnectionBase, wxObject) -wxConnectionBase::wxConnectionBase(wxChar *buffer, int size) - : m_connected(TRUE), +wxConnectionBase::wxConnectionBase(wxChar *buffer, int bytes) + : m_connected(true), m_buffer(buffer), - m_buffersize(size), - m_deletebufferwhendone(FALSE) + m_buffersize(bytes), + m_deletebufferwhendone(false) { if ( buffer == (wxChar *)NULL ) { // behave like next constructor m_buffersize = 0; - m_deletebufferwhendone = TRUE; + m_deletebufferwhendone = true; } } wxConnectionBase::wxConnectionBase() - : m_connected(TRUE), + : m_connected(true), m_buffer(NULL), m_buffersize(0), - m_deletebufferwhendone(TRUE) + m_deletebufferwhendone(true) { } wxConnectionBase::wxConnectionBase(wxConnectionBase& copy) - : m_connected(copy.m_connected), + : wxObject(), + m_connected(copy.m_connected), m_buffer(copy.m_buffer), m_buffersize(copy.m_buffersize), - m_deletebufferwhendone(FALSE) + m_deletebufferwhendone(false) { // copy constructor would require ref-counted pointer to buffer @@ -79,7 +80,10 @@ wxChar *wxConnectionBase::GetBufferAtLeast( size_t bytes ) { // we're in charge of buffer, increase it 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