]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/ipc/server.cpp
force use of generic about dialog as to test unfocused-repainting of wxGrid
[wxWidgets.git] / samples / ipc / server.cpp
index afe890aacf80977ba0834e5befd6217a725a4a39..4bd26352a2b5f14a8cd6f378e0b5fba0764349c0 100644 (file)
@@ -324,25 +324,26 @@ MyConnection::OnRequest(const wxString& topic,
 {
     *size = 0;
 
 {
     *size = 0;
 
-    wxString afterDate;
+    wxString s,
+             afterDate;
     if ( item.StartsWith("Date", &afterDate) )
     {
         const wxDateTime now = wxDateTime::Now();
 
         if ( afterDate.empty() )
         {
     if ( item.StartsWith("Date", &afterDate) )
     {
         const wxDateTime now = wxDateTime::Now();
 
         if ( afterDate.empty() )
         {
-            m_requestData = now.Format();
+            s = now.Format();
             *size = wxNO_LEN;
         }
         else if ( afterDate == "+len" )
         {
             *size = wxNO_LEN;
         }
         else if ( afterDate == "+len" )
         {
-            m_requestData = now.FormatTime() + " " + now.FormatDate();
-            *size = strlen(m_requestData.mb_str()) + 1;
+            s = now.FormatTime() + " " + now.FormatDate();
+            *size = strlen(s.mb_str()) + 1;
         }
     }
     else if ( item == "bytes[3]" )
     {
         }
     }
     else if ( item == "bytes[3]" )
     {
-        m_requestData = "123";
+        s = "123";
         *size = 3;
     }
 
         *size = 3;
     }
 
@@ -352,7 +353,10 @@ MyConnection::OnRequest(const wxString& topic,
         return NULL;
     }
 
         return NULL;
     }
 
-    const void * const data = m_requestData.mb_str();
+    // store the data pointer to which we return in a member variable to ensure
+    // that the pointer remains valid even after we return
+    m_requestData = s.mb_str();
+    const void * const data = m_requestData;
     Log("OnRequest", topic, item, data, *size, format);
     return data;
 }
     Log("OnRequest", topic, item, data, *size, format);
     return data;
 }