X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7beb59f36c016d27cf8949eb8c0d38fc63ad536a..77a1771911ed222ba6861ead327c3735fc16a0b1:/src/common/ipcbase.cpp diff --git a/src/common/ipcbase.cpp b/src/common/ipcbase.cpp index 902e7b8a30..151b3004d1 100644 --- a/src/common/ipcbase.cpp +++ b/src/common/ipcbase.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: ipcbase.cpp +// Name: src/common/ipcbase.cpp // Purpose: IPC base classes // Author: Julian Smart // Modified by: @@ -9,19 +9,14 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) -#pragma implementation "ipcbase.h" -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" #ifdef __BORLANDC__ -#pragma hdrstop + #pragma hdrstop #endif #ifndef WX_PRECOMP -#include "wx/defs.h" #endif #include "wx/ipcbase.h" @@ -30,10 +25,10 @@ IMPLEMENT_CLASS(wxServerBase, wxObject) IMPLEMENT_CLASS(wxClientBase, wxObject) IMPLEMENT_CLASS(wxConnectionBase, wxObject) -wxConnectionBase::wxConnectionBase(wxChar *buffer, int size) +wxConnectionBase::wxConnectionBase(wxChar *buffer, int bytes) : m_connected(true), m_buffer(buffer), - m_buffersize(size), + m_buffersize(bytes), m_deletebufferwhendone(false) { if ( buffer == (wxChar *)NULL ) @@ -51,8 +46,9 @@ wxConnectionBase::wxConnectionBase() { } -wxConnectionBase::wxConnectionBase(wxConnectionBase& copy) - : 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) @@ -79,7 +75,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 @@ -87,4 +86,3 @@ wxChar *wxConnectionBase::GetBufferAtLeast( size_t bytes ) return NULL; } } -