commit 51591b3286dd2cb492979829c7f376e674763220
parent 425eed8bccbb64013cfacbedf4bbb1943a25151a
Author: fundamental <mark.d.mccurry@gmail.com>
Date: Fri, 20 May 2016 11:07:30 -0400
Fix Several Memory Leaks
The primary leak appeared to be missing deallocations for
liblo data structures.
Diffstat:
3 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/src/Containers/MultiPseudoStack.cpp b/src/Containers/MultiPseudoStack.cpp
@@ -28,6 +28,11 @@ LockFreeQueue::LockFreeQueue(qli_t *data_, int n)
tag[i] = INVALID;
}
+LockFreeQueue::~LockFreeQueue(void)
+{
+ delete [] tag;
+}
+
qli_t *LockFreeQueue::read(void) {
retry:
diff --git a/src/Containers/MultiPseudoStack.h b/src/Containers/MultiPseudoStack.h
@@ -34,6 +34,7 @@ class LockFreeQueue
std::atomic<int32_t> avail;
public:
LockFreeQueue(qli_t *data_, int n);
+ ~LockFreeQueue(void);
qli_t *read(void);
void write(qli_t *Q);
};
diff --git a/src/Misc/MiddleWare.cpp b/src/Misc/MiddleWare.cpp
@@ -120,6 +120,8 @@ void path_search(const char *m, const char *url)
lo_address addr = lo_address_new_from_url(url);
if(addr)
lo_send_message(addr, buffer, msg);
+ lo_address_free(addr);
+ lo_message_free(msg);
}
}
@@ -137,7 +139,7 @@ static int handler_function(const char *path, const char *types, lo_arg **argv,
mw->transmitMsg("/echo", "ss", "OSC_URL", tmp);
mw->activeUrl(tmp);
}
-
+ free((void*)tmp);
}
char buffer[2048];
@@ -1375,6 +1377,8 @@ void MiddleWareImpl::sendToRemote(const char *rtmsg, std::string dest)
lo_address addr = lo_address_new_from_url(dest.c_str());
if(addr)
lo_send_message(addr, rtmsg, msg);
+ lo_address_free(addr);
+ lo_message_free(msg);
}
}