]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/sckstrm.cpp
Fix memory leak by letting the base class version handle the
[wxWidgets.git] / src / common / sckstrm.cpp
index df9392287032f0045abcff4d706f728e33f3ffdd..2fd15c9a78bac048e1b55d02ca0b5f959700501a 100644 (file)
@@ -6,9 +6,9 @@
 // Created:     17/07/97
 // RCS-ID:      $Id$
 // Copyright:   (c)
-// Licence:     wxWindows licence
+// Licence:     wxWidgets licence
 /////////////////////////////////////////////////////////////////////////////
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
 #pragma implementation "sckstrm.h"
 #endif
 
@@ -44,19 +44,11 @@ wxSocketOutputStream::~wxSocketOutputStream()
 
 size_t wxSocketOutputStream::OnSysWrite(const void *buffer, size_t size)
 {
-  size_t ret;
-
-  ret = m_o_socket->Write((const char *)buffer, size).LastCount();
-  switch (m_o_socket->LastError()) {
-  case GSOCK_NOERROR:
-    m_lasterror = wxStream_NOERROR;
-    break;
-  default:
-    m_lasterror = wxStream_READ_ERR;
-    break;
-  }
-  return ret;
+  size_t ret = m_o_socket->Write((const char *)buffer, size).LastCount();
+
+  m_lasterror = m_o_socket->Error() ? wxSTREAM_WRITE_ERROR : wxSTREAM_NO_ERROR;
 
+  return ret;
 }
 
 // ---------------------------------------------------------------------------
@@ -74,17 +66,10 @@ wxSocketInputStream::~wxSocketInputStream()
 
 size_t wxSocketInputStream::OnSysRead(void *buffer, size_t size)
 {
-  size_t ret;
-
-  ret = m_i_socket->Read((char *)buffer, size).LastCount();
-  switch (m_i_socket->LastError()) {
-  case GSOCK_NOERROR:
-    m_lasterror = wxStream_NOERROR;
-    break;
-  default:
-    m_lasterror = wxStream_WRITE_ERR;
-    break;
-  }
+  size_t ret = m_i_socket->Read((char *)buffer, size).LastCount();
+
+  m_lasterror = m_i_socket->Error() ? wxSTREAM_READ_ERROR : wxSTREAM_NO_ERROR;
+
   return ret;
 }