summarylogtreecommitdiffstats
path: root/file-picker.patch
blob: a8a74d164b6167c590aec896dfe7b76e4bb1fb4b (plain)
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
47
48
49
50
51
diff --git a/src/Misc/MiddleWare.cpp b/src/Misc/MiddleWare.cpp
index ea7f18ca..9781a179 100644
--- a/src/Misc/MiddleWare.cpp
+++ b/src/Misc/MiddleWare.cpp
@@ -1229,6 +1229,19 @@ void save_cb(const char *msg, RtData &d)
                 file.c_str(), request_time);
 }
 
+void
+gcc_10_1_0_is_dumb(const std::vector<std::string> &files,
+        const int N,
+        char *types,
+        rtosc_arg_t *args)
+{
+        types[N] = 0;
+        for(int i=0; i<N; ++i) {
+            args[i].s = files[i].c_str();
+            types[i]  = 's';
+        }
+}
+
 /*
  * BASE/part#/kititem#
  * BASE/part#/kit#/adpars/voice#/oscil/\*
@@ -1373,11 +1386,8 @@ static rtosc::Ports middwareSnoopPorts = {
         const int N = files.size();
         rtosc_arg_t *args  = new rtosc_arg_t[N];
         char        *types = new char[N+1];
-        types[N] = 0;
-        for(int i=0; i<N; ++i) {
-            args[i].s = files[i].c_str();
-            types[i]  = 's';
-        }
+        string      *data  = files.data();
+        gcc_10_1_0_is_dumb(files, N, types, args);
 
         d.replyArray(d.loc, types, args);
         delete [] types;
@@ -1392,11 +1402,7 @@ static rtosc::Ports middwareSnoopPorts = {
         const int N = files.size();
         rtosc_arg_t *args  = new rtosc_arg_t[N];
         char        *types = new char[N+1];
-        types[N] = 0;
-        for(int i=0; i<N; ++i) {
-            args[i].s = files[i].c_str();
-            types[i]  = 's';
-        }
+        gcc_10_1_0_is_dumb(files, N, types, args);
 
         d.replyArray(d.loc, types, args);
         delete [] types;