]> pilppa.org Git - libplpbus.git/blobdiff - src/plpbus/OrbServerImpl.cc
memory leak fixes
[libplpbus.git] / src / plpbus / OrbServerImpl.cc
index 0d98badf838b4ea12b620a378d4c2cb8d3e71217..1207f912c31d3900d8a78cf13a0dfcee8b22097a 100644 (file)
@@ -105,25 +105,25 @@ void OrbServerImpl::send_dataitem_message_and_request_response(OrbClient_ptr res
        }
 }
 
+void copy( const DataItemSequence& orig_seq )
+{
+       DataItemSequence new_seq;
+
+       new_seq = orig_seq;
+}
+
 CORBA::Long OrbServerImpl::send_dataitem_message_and_wait_response(const DataItemSequence& req_seq_param,
                                                                DataItemSequence_out rsp_seq_param) {
-       BusMessage              *msg_req;
-       BusMessage              *msg_rsp;
-       DataItemSequence        *seq;
-       int                     err_flg;
+       BusMessage      *msg_req;
+       BusMessage      *msg_rsp;
+       int             err_flg;
 
-       seq     = NULL;
-       msg_rsp = NULL;
        msg_req = new BusMessageInternal(req_seq_param);
        msg_rsp = new BusMessage(msg_req->get_type(&err_flg));
        _listener->request_received(msg_req, msg_rsp);
-       if (msg_rsp != NULL) {
-               seq     = (DataItemSequence *)msg_rsp->_dataItemSeq;
-       }
-       else {
-               seq     = new DataItemSequence();
-       }
-       rsp_seq_param._data     = seq;
+       rsp_seq_param._data     = new DataItemSequence(*(msg_rsp->_dataItemSeq));
+       delete(msg_req);
+       delete(msg_rsp);
 
        return 0;
 }