Skip to content

Commit

Permalink
Fix memory leakage with release build due free inside asserts (#85)
Browse files Browse the repository at this point in the history
  • Loading branch information
LaGrunge authored Jun 16, 2020
1 parent 21cb0f5 commit dabf472
Showing 1 changed file with 11 additions and 5 deletions.
16 changes: 11 additions & 5 deletions src/zmq_helpers.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,8 @@ namespace zmq {
//wrap it in RAII goodness
ptr.reset(context,
[](void* context) {
assert(zmq_ctx_term(context) == 0);
auto ret = zmq_ctx_term(context);
assert(ret == 0);
});
}
context_t::operator void*() {
Expand All @@ -37,7 +38,8 @@ namespace zmq {
//wrap it in RAII goodness
ptr.reset(message,
[](zmq_msg_t* message) {
assert(zmq_msg_close(message) == 0);
auto ret = zmq_msg_close(message);
assert(ret == 0);
delete message;
});
}
Expand All @@ -50,12 +52,15 @@ namespace zmq {
//wrap it in RAII goodness
ptr.reset(message,
[](zmq_msg_t* message) {
assert(zmq_msg_close(message) == 0);
auto ret = zmq_msg_close(message);
assert(ret == 0);
delete message;
});
}
void message_t::reset(size_t size) {
assert(zmq_msg_close(ptr.get()) == 0);
auto ret = zmq_msg_close(ptr.get());
assert(ret == 0);

if(zmq_msg_init_size(ptr.get(), size) != 0)
throw std::runtime_error(zmq_strerror(zmq_errno()));
}
Expand Down Expand Up @@ -95,7 +100,8 @@ namespace zmq {
//wrap it in RAII goodness
ptr.reset(socket,
[](void* socket){
assert(zmq_close(socket) == 0);
auto ret = zmq_close(socket);
assert(ret == 0);
});
}
//set an option on this socket
Expand Down

0 comments on commit dabf472

Please sign in to comment.