Commit 22b72bb6 authored by Simon Giesecke's avatar Simon Giesecke

Problem: deallocate calls release after de-allocation

Solution: reduce to newly extracted function clear, which does not use the freed pointer
parent e37fc47f
......@@ -108,17 +108,21 @@ void zmq::shared_message_memory_allocator::deallocate ()
if (buf && !c->sub (1)) {
std::free (buf);
}
release ();
clear ();
}
unsigned char *zmq::shared_message_memory_allocator::release ()
{
unsigned char *b = buf;
clear ();
return b;
}
void zmq::shared_message_memory_allocator::clear ()
{
buf = NULL;
bufsize = 0;
msg_content = NULL;
return b;
}
void zmq::shared_message_memory_allocator::inc_ref ()
......
......@@ -120,6 +120,8 @@ class shared_message_memory_allocator
void advance_content () { msg_content++; }
private:
void clear ();
unsigned char *buf;
std::size_t bufsize;
const std::size_t max_size;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment