]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/sckipc.cpp
there is no sqrt(int) in standard C++ (although glibc seems to provide it); select...
[wxWidgets.git] / src / common / sckipc.cpp
index ff7ebbcc2a26fed269ea951baaf7743bf5b2ce7a..14526474d7fa14f5bb390cc9582792bf58e3dd99 100644 (file)
@@ -680,16 +680,21 @@ void wxTCPEventHandler::Client_OnRequest(wxSocketEvent &event)
     const wxString topic = connection->m_topic;
     wxString item;
 
-    switch ( const int msg = streams->Read8() )
+    bool error = false;
+
+    const int msg = streams->Read8();
+    switch ( msg )
     {
         case IPC_EXECUTE:
             {
                 wxIPCFormat format;
-                size_t size;
+                size_t size wxDUMMY_INITIALIZE(0);
                 void * const
                     data = streams->ReadFormatData(connection, &format, &size);
-
-                connection->OnExecute(topic, data, size, format);
+                if ( data )
+                    connection->OnExecute(topic, data, size, format);
+                else
+                    error = true;
             }
             break;
 
@@ -698,11 +703,14 @@ void wxTCPEventHandler::Client_OnRequest(wxSocketEvent &event)
                 item = streams->ReadString();
 
                 wxIPCFormat format;
-                size_t size;
+                size_t size wxDUMMY_INITIALIZE(0);
                 void * const
                     data = streams->ReadFormatData(connection, &format, &size);
 
-                connection->OnAdvise(topic, item, data, size, format);
+                if ( data )
+                    connection->OnAdvise(topic, item, data, size, format);
+                else
+                    error = true;
             }
             break;
 
@@ -731,10 +739,13 @@ void wxTCPEventHandler::Client_OnRequest(wxSocketEvent &event)
                 item = streams->ReadString();
                 wxIPCFormat format = (wxIPCFormat)streams->Read8();
 
-                size_t size;
+                size_t size wxDUMMY_INITIALIZE(0);
                 void * const data = streams->ReadData(connection, &size);
 
-                connection->OnPoke(topic, item, data, size, format);
+                if ( data )
+                    connection->OnPoke(topic, item, data, size, format);
+                else
+                    error = true;
             }
             break;
 
@@ -788,9 +799,12 @@ void wxTCPEventHandler::Client_OnRequest(wxSocketEvent &event)
 
         default:
             wxLogDebug("Unknown message code %d received.", msg);
-            IPCOutput(streams).Write8(IPC_FAIL);
+            error = true;
             break;
     }
+
+    if ( error )
+        IPCOutput(streams).Write8(IPC_FAIL);
 }
 
 void wxTCPEventHandler::Server_OnRequest(wxSocketEvent &event)