X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8898456df4728afe7d100011e0e23b0ffb9a6341..6403484578149a9ed8d40f38cb21d311b79a33ac:/src/common/ipcbase.cpp?ds=sidebyside diff --git a/src/common/ipcbase.cpp b/src/common/ipcbase.cpp index 151b3004d1..0de6f3b045 100644 --- a/src/common/ipcbase.cpp +++ b/src/common/ipcbase.cpp @@ -25,13 +25,13 @@ IMPLEMENT_CLASS(wxServerBase, wxObject) IMPLEMENT_CLASS(wxClientBase, wxObject) IMPLEMENT_CLASS(wxConnectionBase, wxObject) -wxConnectionBase::wxConnectionBase(wxChar *buffer, int bytes) - : m_connected(true), - m_buffer(buffer), +wxConnectionBase::wxConnectionBase(void *buffer, size_t bytes) + : m_buffer((char *)buffer), m_buffersize(bytes), - m_deletebufferwhendone(false) + m_deletebufferwhendone(false), + m_connected(true) { - if ( buffer == (wxChar *)NULL ) + if ( buffer == NULL ) { // behave like next constructor m_buffersize = 0; m_deletebufferwhendone = true; @@ -39,19 +39,19 @@ wxConnectionBase::wxConnectionBase(wxChar *buffer, int bytes) } wxConnectionBase::wxConnectionBase() - : m_connected(true), - m_buffer(NULL), + : m_buffer(NULL), m_buffersize(0), - m_deletebufferwhendone(true) + m_deletebufferwhendone(true), + m_connected(true) { } wxConnectionBase::wxConnectionBase(const wxConnectionBase& copy) : wxObject(), - m_connected(copy.m_connected), m_buffer(copy.m_buffer), m_buffersize(copy.m_buffersize), - m_deletebufferwhendone(false) + m_deletebufferwhendone(false), + m_connected(copy.m_connected) { // copy constructor would require ref-counted pointer to buffer @@ -62,10 +62,10 @@ wxConnectionBase::wxConnectionBase(const wxConnectionBase& copy) wxConnectionBase::~wxConnectionBase(void) { if ( m_deletebufferwhendone && m_buffer ) - delete m_buffer; + delete m_buffer; } -wxChar *wxConnectionBase::GetBufferAtLeast( size_t bytes ) +void *wxConnectionBase::GetBufferAtLeast( size_t bytes ) { if ( m_buffersize >= bytes ) return m_buffer; @@ -75,10 +75,7 @@ wxChar *wxConnectionBase::GetBufferAtLeast( size_t bytes ) { // we're in charge of buffer, increase it if ( m_buffer ) delete m_buffer; - // 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_buffer = new char[bytes]; m_buffersize = bytes; return m_buffer; } // user-supplied buffer, fail