You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@etch.apache.org by ve...@apache.org on 2014/03/18 14:58:41 UTC
svn commit: r1578903 -
/etch/trunk/binding-cpp/runtime/src/main/transport/EtchDefaultDeliveryService.cpp
Author: veithm
Date: Tue Mar 18 13:58:40 2014
New Revision: 1578903
URL: http://svn.apache.org/r1578903
Log:
Fixing memory leak in handling of void functions
Void functions are handled differently from non-void functions. In case of
void functions the resulting mailbox has not been deleted which caused
memory leaks.
Change-Id: I2e44dacc9d632df0d06cc32c6ac868de5c74720d
Modified:
etch/trunk/binding-cpp/runtime/src/main/transport/EtchDefaultDeliveryService.cpp
Modified: etch/trunk/binding-cpp/runtime/src/main/transport/EtchDefaultDeliveryService.cpp
URL: http://svn.apache.org/viewvc/etch/trunk/binding-cpp/runtime/src/main/transport/EtchDefaultDeliveryService.cpp?rev=1578903&r1=1578902&r2=1578903&view=diff
==============================================================================
--- etch/trunk/binding-cpp/runtime/src/main/transport/EtchDefaultDeliveryService.cpp (original)
+++ etch/trunk/binding-cpp/runtime/src/main/transport/EtchDefaultDeliveryService.cpp Tue Mar 18 13:58:40 2014
@@ -179,8 +179,13 @@ status_t EtchDefaultDeliveryService::end
status_t err = rmsg->get(field, &r);
if (err == ETCH_ENOT_EXIST) {
//void return value
- mb->closeRead();
+ if (mb->closeRead() != ETCH_OK) {
+ ETCH_LOG_ERROR(mRuntime->getLogger(), mRuntime->getLogger().getDeliveryServiceContext(), "Error in end call on void function");
+ delete mbe;
+ return ETCH_ERROR;
+ }
ETCH_LOG_DEBUG(mRuntime->getLogger(), mRuntime->getLogger().getDeliveryServiceContext(), "End call for the message is completed");
+ delete mbe;
return ETCH_OK;
} else if (err != ETCH_OK) {
mb->closeRead();