From 9bd3e7d45f229012deb9c06b3334b49872773ee2 Mon Sep 17 00:00:00 2001 From: Bastian Bloessl Date: Wed, 5 Jun 2013 08:11:44 +0200 Subject: [PATCH] pdu_to_blob: create blob directly from u8_vector --- lib/pdu_to_blob_impl.cc | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/lib/pdu_to_blob_impl.cc b/lib/pdu_to_blob_impl.cc index 5924c54..228bde9 100644 --- a/lib/pdu_to_blob_impl.cc +++ b/lib/pdu_to_blob_impl.cc @@ -42,26 +42,21 @@ pdu_to_blob_impl() : void make_blob(pmt::pmt_t msg) { - assert(pmt::is_pair(msg)); + if(!pmt::is_pair(msg)) + throw std::invalid_argument("this block expects PDUs as input"); pmt::pmt_t vec = pmt::cdr(msg); - assert(pmt::is_u8vector(vec)); + + if(!pmt::is_u8vector(vec)) + throw std::invalid_argument("this block expects PDUs as input"); size_t len; - const void *data = pmt::uniform_vector_elements(vec, len); - assert(len < 4000); - - std::memcpy(buf, data, len); - - pmt::pmt_t blob = pmt::make_blob(buf, len); + pmt::pmt_t blob = pmt::make_blob(data, len); message_port_pub(pmt::mp("out"), blob); } -private: - char buf[4000]; - }; pdu_to_blob::sptr