You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ta...@apache.org on 2009/02/05 02:41:53 UTC

svn commit: r740972 - in /activemq/activemq-cpp/trunk/src/main/activemq/transport: IOTransport.cpp IOTransport.h

Author: tabish
Date: Thu Feb  5 01:41:52 2009
New Revision: 740972

URL: http://svn.apache.org/viewvc?rev=740972&view=rev
Log:
Fix some memory leaks

Modified:
    activemq/activemq-cpp/trunk/src/main/activemq/transport/IOTransport.cpp
    activemq/activemq-cpp/trunk/src/main/activemq/transport/IOTransport.h

Modified: activemq/activemq-cpp/trunk/src/main/activemq/transport/IOTransport.cpp
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/main/activemq/transport/IOTransport.cpp?rev=740972&r1=740971&r2=740972&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/src/main/activemq/transport/IOTransport.cpp (original)
+++ activemq/activemq-cpp/trunk/src/main/activemq/transport/IOTransport.cpp Thu Feb  5 01:41:52 2009
@@ -42,7 +42,6 @@
     this->outputStream = NULL;
     this->closed = false;
     this->thread = NULL;
-    this->wireFormat = NULL;
 }
 
 ////////////////////////////////////////////////////////////////////////////////
@@ -53,7 +52,7 @@
     this->outputStream = NULL;
     this->closed = false;
     this->thread = NULL;
-    this->wireFormat = wireFormat;
+    this->wireFormat.reset( wireFormat );
 }
 
 ////////////////////////////////////////////////////////////////////////////////
@@ -158,7 +157,7 @@
         }
 
         // Make sure all variables that we need have been set.
-        if( inputStream == NULL || outputStream == NULL || wireFormat == NULL ){
+        if( inputStream == NULL || outputStream == NULL || wireFormat.get() == NULL ){
             throw ActiveMQException(
                 __FILE__, __LINE__,
                 "IOTransport::start() - "
@@ -210,7 +209,7 @@
         }
 
         // Clear the WireFormat so we can't use it anymore
-        this->wireFormat = NULL;
+        this->wireFormat.reset( NULL );
     }
     AMQ_CATCH_RETHROW( ActiveMQException )
     AMQ_CATCH_EXCEPTION_CONVERT( Exception, ActiveMQException )

Modified: activemq/activemq-cpp/trunk/src/main/activemq/transport/IOTransport.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/main/activemq/transport/IOTransport.h?rev=740972&r1=740971&r2=740972&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/src/main/activemq/transport/IOTransport.h (original)
+++ activemq/activemq-cpp/trunk/src/main/activemq/transport/IOTransport.h Thu Feb  5 01:41:52 2009
@@ -29,6 +29,7 @@
 #include <decaf/io/DataInputStream.h>
 #include <decaf/io/DataOutputStream.h>
 #include <decaf/util/logging/LoggerDefines.h>
+#include <memory>
 
 namespace activemq{
 namespace wireformat{
@@ -58,7 +59,7 @@
         /**
          * WireFormat instance to use to Encode / Decode.
          */
-        wireformat::WireFormat* wireFormat;
+        std::auto_ptr<wireformat::WireFormat> wireFormat;
 
         /**
          * Listener of this transport.
@@ -151,7 +152,7 @@
          * @param WireFormat the object used to encode / decode commands.
          */
         virtual void setWireFormat( wireformat::WireFormat* wireFormat ){
-            this->wireFormat = wireFormat;
+            this->wireFormat.reset( wireFormat );
         }
 
         /**