File: 0016-qtgui-matrixdisplay-avoid-extraneous-copy-work-with-.patch

package info (click to toggle)
gnuradio 3.10.12.0-3
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 41,196 kB
  • sloc: cpp: 191,540; python: 91,856; ansic: 2,292; xml: 999; fortran: 927; sh: 477; makefile: 50
file content (46 lines) | stat: -rw-r--r-- 1,538 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
From ca7ba89753bc5e148dd574d46306054f936faa9b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marcus=20M=C3=BCller?= <mmueller@gnuradio.org>
Date: Sun, 13 Apr 2025 13:29:59 +0200
Subject: [PATCH 16/41] qtgui/matrixdisplay: avoid extraneous copy, work with
 Qt<5.14
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
---
 gr-qtgui/lib/matrix_sink_impl.cc | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/gr-qtgui/lib/matrix_sink_impl.cc b/gr-qtgui/lib/matrix_sink_impl.cc
index 7ef474e230..3e955a2c5b 100644
--- a/gr-qtgui/lib/matrix_sink_impl.cc
+++ b/gr-qtgui/lib/matrix_sink_impl.cc
@@ -1,6 +1,7 @@
 /* -*- c++ -*- */
 /*
  * Copyright 2023 Free Software Foundation, Inc.
+ * Copyright 2025 Marcus Müller
  *
  * This file is part of GNU Radio
  *
@@ -116,9 +117,13 @@ int matrix_sink_impl::work(int noutput_items,
     auto in = static_cast<const input_type*>(input_items[0]);
 
     for (int k = 0; k < noutput_items; k++) {
-        std::vector<input_type> a(in + k * d_vlen, in + (k + 1) * d_vlen);
-        QVector<double> qvec(a.begin(), a.end());
-        emit d_signal->data_ready(qvec);
+#if QT_VERSION < QT_VERSION_CHECK(5, 14, 0)
+        QVector<double> data(d_vlen);
+        std::copy_n(in + k * d_vlen, d_vlen, data.begin());
+#else
+        QVector<double> data(in + k * d_vlen, in + (k + 1) * d_vlen);
+#endif
+        emit d_signal->data_ready(data);
     }
 
     return noutput_items;
-- 
2.47.3