diff options
author | Thomas Habets <thomas@habets.se> | 2020-08-12 11:53:20 +0100 |
---|---|---|
committer | Martin Braun <martin@gnuradio.org> | 2020-08-14 04:08:48 -0700 |
commit | 752593a347de25cc28ec981c27b2e5f381f843a6 (patch) | |
tree | f9c1f17eeaa35832345eb7bc36711b3b0040dddc | |
parent | 91c5b60465d8a932f54b979a3303b24c0f1eb696 (diff) |
digital/glfsr_source: Remove manual memory management
-rw-r--r-- | gr-digital/lib/glfsr_source_b_impl.cc | 11 | ||||
-rw-r--r-- | gr-digital/lib/glfsr_source_b_impl.h | 2 | ||||
-rw-r--r-- | gr-digital/lib/glfsr_source_f_impl.cc | 11 | ||||
-rw-r--r-- | gr-digital/lib/glfsr_source_f_impl.h | 2 |
4 files changed, 10 insertions, 16 deletions
diff --git a/gr-digital/lib/glfsr_source_b_impl.cc b/gr-digital/lib/glfsr_source_b_impl.cc index f10eafb71c..13ee0393da 100644 --- a/gr-digital/lib/glfsr_source_b_impl.cc +++ b/gr-digital/lib/glfsr_source_b_impl.cc @@ -32,6 +32,7 @@ glfsr_source_b_impl::glfsr_source_b_impl(unsigned int degree, : sync_block("glfsr_source_b", io_signature::make(0, 0, 0), io_signature::make(1, 1, sizeof(unsigned char))), + d_glfsr(mask ? mask : glfsr::glfsr_mask(degree), seed), d_repeat(repeat), d_index(0), d_length((((uint32_t)1) << degree) - 1) @@ -39,15 +40,11 @@ glfsr_source_b_impl::glfsr_source_b_impl(unsigned int degree, if (degree < 1 || degree > 32) throw std::runtime_error( "glfsr_source_b_impl: degree must be between 1 and 32 inclusive"); - - if (mask == 0) - mask = glfsr::glfsr_mask(degree); - d_glfsr = new glfsr(mask, seed); } -glfsr_source_b_impl::~glfsr_source_b_impl() { delete d_glfsr; } +glfsr_source_b_impl::~glfsr_source_b_impl() {} -uint32_t glfsr_source_b_impl::mask() const { return d_glfsr->mask(); } +uint32_t glfsr_source_b_impl::mask() const { return d_glfsr.mask(); } int glfsr_source_b_impl::work(int noutput_items, gr_vector_const_void_star& input_items, @@ -59,7 +56,7 @@ int glfsr_source_b_impl::work(int noutput_items, int i; for (i = 0; i < noutput_items; i++) { - out[i] = d_glfsr->next_bit(); + out[i] = d_glfsr.next_bit(); d_index++; if (d_index > d_length && d_repeat == false) break; diff --git a/gr-digital/lib/glfsr_source_b_impl.h b/gr-digital/lib/glfsr_source_b_impl.h index 1f5b27bc39..95633be95c 100644 --- a/gr-digital/lib/glfsr_source_b_impl.h +++ b/gr-digital/lib/glfsr_source_b_impl.h @@ -20,7 +20,7 @@ namespace digital { class glfsr_source_b_impl : public glfsr_source_b { private: - glfsr* d_glfsr; + glfsr d_glfsr; bool d_repeat; uint32_t d_index; diff --git a/gr-digital/lib/glfsr_source_f_impl.cc b/gr-digital/lib/glfsr_source_f_impl.cc index ad4fc96fd2..41559b570e 100644 --- a/gr-digital/lib/glfsr_source_f_impl.cc +++ b/gr-digital/lib/glfsr_source_f_impl.cc @@ -33,6 +33,7 @@ glfsr_source_f_impl::glfsr_source_f_impl(unsigned int degree, : sync_block("glfsr_source_f", io_signature::make(0, 0, 0), io_signature::make(1, 1, sizeof(float))), + d_glfsr(mask ? mask : glfsr::glfsr_mask(degree), seed), d_repeat(repeat), d_index(0), d_length((((uint32_t)1) << degree) - 1) @@ -40,15 +41,11 @@ glfsr_source_f_impl::glfsr_source_f_impl(unsigned int degree, if (degree < 1 || degree > 32) throw std::runtime_error( "glfsr_source_f_impl: degree must be between 1 and 32 inclusive"); - - if (mask == 0) - mask = glfsr::glfsr_mask(degree); - d_glfsr = new glfsr(mask, seed); } -glfsr_source_f_impl::~glfsr_source_f_impl() { delete d_glfsr; } +glfsr_source_f_impl::~glfsr_source_f_impl() {} -uint32_t glfsr_source_f_impl::mask() const { return d_glfsr->mask(); } +uint32_t glfsr_source_f_impl::mask() const { return d_glfsr.mask(); } int glfsr_source_f_impl::work(int noutput_items, gr_vector_const_void_star& input_items, @@ -60,7 +57,7 @@ int glfsr_source_f_impl::work(int noutput_items, int i; for (i = 0; i < noutput_items; i++) { - out[i] = (float)d_glfsr->next_bit() * 2.0 - 1.0; + out[i] = (float)d_glfsr.next_bit() * 2.0 - 1.0; d_index++; if (d_index > d_length && d_repeat == false) break; diff --git a/gr-digital/lib/glfsr_source_f_impl.h b/gr-digital/lib/glfsr_source_f_impl.h index 0f90a9ce63..9975b5c27f 100644 --- a/gr-digital/lib/glfsr_source_f_impl.h +++ b/gr-digital/lib/glfsr_source_f_impl.h @@ -20,7 +20,7 @@ namespace digital { class glfsr_source_f_impl : public glfsr_source_f { private: - glfsr* d_glfsr; + glfsr d_glfsr; bool d_repeat; uint32_t d_index; |