diff --git a/src/msg.cpp b/src/msg.cpp index 65409a27..c3ddff59 100644 --- a/src/msg.cpp +++ b/src/msg.cpp @@ -239,6 +239,7 @@ int zmq::msg_t::close () if (u.base.metadata->drop_ref ()) { LIBZMQ_DELETE(u.base.metadata); } + u.base.metadata = NULL; } // Make the message invalid. @@ -393,8 +394,10 @@ void zmq::msg_t::set_metadata (zmq::metadata_t *metadata_) void zmq::msg_t::reset_metadata () { if (u.base.metadata) { - if (u.base.metadata->drop_ref ()) + if (u.base.metadata->drop_ref ()) { LIBZMQ_DELETE(u.base.metadata); + } + u.base.metadata = NULL; } } @@ -493,12 +496,12 @@ bool zmq::msg_t::rm_refs (int refs_) return true; } -uint32_t zmq::msg_t::get_routing_id() +uint32_t zmq::msg_t::get_routing_id() { return u.base.routing_id; } -int zmq::msg_t::set_routing_id(uint32_t routing_id_) +int zmq::msg_t::set_routing_id(uint32_t routing_id_) { u.base.routing_id = routing_id_; return 0;