Skip to content

Commit 9f37663

Browse files
authored
Fix/list store fixes (#401)
* fix single float bang on right outlet * correct order for append/prepend
1 parent 30b7579 commit 9f37663

5 files changed

Lines changed: 164 additions & 106 deletions

File tree

hvcc/generators/ir2c/static/HvControlList.c

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,11 @@ static void cList_store_get(HeavyContextInterface *_c, ControlList *o, const HvM
249249
msg_free(n);
250250
} else {
251251
HvMessage *n = cList_slice(o->list, index, index + 1);
252-
sendMessage(_c, 0, n);
252+
if (msg_isBang(n, 0)) {
253+
sendMessage(_c, 1, n);
254+
} else {
255+
sendMessage(_c, 0, n);
256+
}
253257
msg_free(n);
254258
}
255259
}
@@ -271,7 +275,7 @@ static void cList_store_append(ControlList *o, const HvMessage *m1, int numEleme
271275
// append our stored list
272276
HvMessage *a = o->list;
273277
HvMessage *slice = cList_slice(m1, 1, numElements);
274-
HvMessage *newList = cList_combine_lists(slice, a);
278+
HvMessage *newList = cList_combine_lists(a, slice);
275279
msg_free(slice);
276280
msg_free(o->list);
277281
o->list = newList;
@@ -282,7 +286,7 @@ static void cList_store_prepend(ControlList *o, const HvMessage *m1, int numElem
282286
// prepend our stored list
283287
HvMessage *a = o->list;
284288
HvMessage *slice = cList_slice(m1, 1, numElements);
285-
HvMessage *newList = cList_combine_lists(a, slice);
289+
HvMessage *newList = cList_combine_lists(slice, a);
286290
msg_free(slice);
287291
msg_free(o->list);
288292
o->list = newList;
Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,32 @@
1+
[@ 0.000] store-right: bang
2+
[@ 0.000] store-right: bang
3+
[@ 0.000] store-right: bang
4+
[@ 0.000] store-left: 2
5+
[@ 0.000] store-left: 8 2
6+
[@ 0.000] store-left: 1 2 3 2
7+
[@ 0.000] store-left: list bla 2
8+
[@ 0.000] store-left: list cis boom bah 2
19
[@ 0.000] store-left: 6 and 7
210
[@ 0.000] store-left: 5 6 and
311
[@ 0.000] store-left: 5
412
[@ 0.000] store-left: 4 5 6 and 7
5-
[@ 0.000] store-left: 0 4 5 6 and 7
13+
[@ 0.000] store-left: 8 4 5 6 and 7
614
[@ 0.000] store-left: 1 2 3 4 5 6 and 7
715
[@ 0.000] store-left: list bla 4 5 6 and 7
816
[@ 0.000] store-left: list cis boom bah 4 5 6 and 7
917
[@ 0.000] store-left: symbol z
1018
[@ 0.000] store-right: bang
1119
[@ 0.000] store-left: symbol y
1220
[@ 0.000] store-left: list x y z
13-
[@ 0.000] store-left: 0 x y z
21+
[@ 0.000] store-left: 8 x y z
1422
[@ 0.000] store-left: 1 2 3 x y z
1523
[@ 0.000] store-left: list bla x y z
1624
[@ 0.000] store-left: list cis boom bah x y z
1725
[@ 0.000] store-left: symbol go
1826
[@ 0.000] store-right: bang
1927
[@ 0.000] store-left: symbol dog
2028
[@ 0.000] store-left: list go dog go
21-
[@ 0.000] store-left: 0 go dog go
29+
[@ 0.000] store-left: 8 go dog go
2230
[@ 0.000] store-left: 1 2 3 go dog go
2331
[@ 0.000] store-left: list bla go dog go
2432
[@ 0.000] store-left: list cis boom bah go dog go
Lines changed: 46 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,54 @@
1-
#N canvas 827 239 374 772 12;
2-
#X floatatom 99 305 5 0 0 0 - - - 0;
1+
#N canvas 523 93 374 772 12;
32
#X msg 83 275 1 2 3;
43
#X msg 40 194 list cis boom bah;
5-
#X msg 193 530 list x y z;
6-
#X msg 182 502 go dog go;
7-
#X msg 201 556 4 5 6 and 7;
4+
#X msg 299 420 list x y z;
5+
#X msg 265 443 go dog go;
6+
#X msg 332 397 4 5 6 and 7;
87
#X obj 73 771 print store-left;
98
#X obj 182 711 print store-right;
109
#X obj 182 682 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000;
11-
#X obj 117 339 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000;
12-
#X msg 138 403 get 1 3;
13-
#X msg 150 436 get 2 -1;
14-
#X msg 129 371 get 1;
10+
#X obj 132 339 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000;
11+
#X msg 171 409 get 1 3;
12+
#X msg 188 441 get 2 -1;
13+
#X msg 153 378 get 1;
1514
#X obj 73 654 list store, f 16;
16-
#X obj 40 21 loadbang;
15+
#X obj 40 11 loadbang;
1716
#X obj 40 47 bng 25 250 50 0 empty empty empty 0 -10 0 10 #191919 #ffffff #ffffff;
18-
#X obj 40 79 t b b b b b b;
19-
#X obj 40 150 t b b b b b b b b;
17+
#X obj 31 153 t b b b b b b b b;
2018
#X msg 57 236 symbol bla;
21-
#X connect 0 0 13 0;
22-
#X connect 1 0 13 0;
23-
#X connect 2 0 13 0;
24-
#X connect 3 0 13 1;
25-
#X connect 4 0 13 1;
26-
#X connect 5 0 13 1;
27-
#X connect 8 0 7 0;
28-
#X connect 9 0 13 0;
29-
#X connect 10 0 13 0;
30-
#X connect 11 0 13 0;
31-
#X connect 12 0 13 0;
32-
#X connect 13 0 6 0;
33-
#X connect 13 1 8 0;
34-
#X connect 14 0 15 0;
35-
#X connect 15 0 16 0;
36-
#X connect 16 0 17 0;
37-
#X connect 16 1 4 0;
38-
#X connect 16 2 17 0;
39-
#X connect 16 3 3 0;
40-
#X connect 16 4 17 0;
41-
#X connect 16 5 5 0;
42-
#X connect 17 0 2 0;
43-
#X connect 17 1 18 0;
44-
#X connect 17 2 1 0;
45-
#X connect 17 3 0 0;
46-
#X connect 17 4 9 0;
47-
#X connect 17 5 12 0;
48-
#X connect 17 6 10 0;
49-
#X connect 17 7 11 0;
50-
#X connect 18 0 13 0;
19+
#X msg 103 319 8;
20+
#X obj 40 79 t b b b b b b b b;
21+
#X msg 361 373 2;
22+
#X connect 0 0 12 0;
23+
#X connect 1 0 12 0;
24+
#X connect 2 0 12 1;
25+
#X connect 3 0 12 1;
26+
#X connect 4 0 12 1;
27+
#X connect 7 0 6 0;
28+
#X connect 8 0 12 0;
29+
#X connect 9 0 12 0;
30+
#X connect 10 0 12 0;
31+
#X connect 11 0 12 0;
32+
#X connect 12 0 5 0;
33+
#X connect 12 1 7 0;
34+
#X connect 13 0 14 0;
35+
#X connect 14 0 18 0;
36+
#X connect 15 0 1 0;
37+
#X connect 15 1 16 0;
38+
#X connect 15 2 0 0;
39+
#X connect 15 3 17 0;
40+
#X connect 15 4 8 0;
41+
#X connect 15 5 11 0;
42+
#X connect 15 6 9 0;
43+
#X connect 15 7 10 0;
44+
#X connect 16 0 12 0;
45+
#X connect 17 0 12 0;
46+
#X connect 18 0 15 0;
47+
#X connect 18 1 3 0;
48+
#X connect 18 2 15 0;
49+
#X connect 18 3 2 0;
50+
#X connect 18 4 15 0;
51+
#X connect 18 5 4 0;
52+
#X connect 18 6 15 0;
53+
#X connect 18 7 19 0;
54+
#X connect 19 0 12 1;
Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,30 @@
1-
[@ 0.000] 1001-x: 4 5 6 and 7
1+
[@ 0.000] recieve-x: 4 5 6 and 7
22
[@ 0.000] foo: 4 5 6 and 7
3+
[@ 30.000] store-left: 1 2 3 4 5 6 and 7
4+
[@ 30.000] store-left: 1 2 3 4 5 6 and 7 9 8 7
5+
[@ 30.000] store-left: 1 2 3 4
6+
[@ 30.000] store-left: 1 2
7+
[@ 30.000] store-left: 1
8+
[@ 30.000] store-left: 1 foo bar
9+
[@ 30.000] store-left: 1 5 6
310
[@ 30.000] store-left: 1 5 4
4-
[@ 85.333] 1001-x: list w x y z
11+
[@ 85.333] recieve-x: list w x y z
512
[@ 85.333] foo: list w x y z
13+
[@ 130.000] store-left: 1 2 3 w x y z
14+
[@ 130.000] store-left: 1 2 3 w x y z 9 8 7
15+
[@ 130.000] store-left: 1 2 3 w
16+
[@ 130.000] store-left: 1 2
17+
[@ 130.000] store-left: 1
18+
[@ 130.000] store-left: 1 foo bar
19+
[@ 130.000] store-left: 1 5 6
620
[@ 130.000] store-left: 1 5 4
7-
[@ 192.000] 1001-x: list go dog go cat
21+
[@ 192.000] recieve-x: list go dog go cat
822
[@ 192.000] foo: list go dog go cat
23+
[@ 230.000] store-left: 1 2 3 go dog go cat
24+
[@ 230.000] store-left: 1 2 3 go dog go cat 9 8 7
25+
[@ 230.000] store-left: 1 2 3 go
26+
[@ 230.000] store-left: 1 2
27+
[@ 230.000] store-left: 1
28+
[@ 230.000] store-left: 1 foo bar
29+
[@ 230.000] store-left: 1 5 6
930
[@ 230.000] store-left: 1 5 4
Lines changed: 76 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,60 @@
1-
#N canvas 827 239 413 1183 12;
2-
#X msg 301 828 4 5 6 and 7;
1+
#N canvas 473 -106 808 1107 12;
2+
#X msg 688 726 4 5 6 and 7;
33
#X obj 41 1066 print store-left;
44
#X obj 134 1008 print store-right;
55
#X obj 136 957 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000;
66
#X obj 41 924 list store, f 16;
7-
#X obj 26 18 loadbang;
7+
#X obj 26 15 loadbang;
88
#X obj 26 44 bng 25 250 50 0 empty empty empty 0 -10 0 10 #191919 #ffffff #ffffff;
99
#X obj 26 76 t b b b b b b;
10-
#X msg 64 496 set 1 5 6 7;
11-
#X msg 81 536 insert 1 foo bar;
12-
#X msg 98 569 delete 1;
13-
#X msg 154 738 send foo;
14-
#X msg 172 827 send \$1;
15-
#X obj 172 802 symbol \$0-x;
16-
#X obj 172 777 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000;
17-
#X msg 140 696 prepend 1 2 3;
18-
#X msg 131 667 append 1 2 3;
10+
#X msg 87 492 set 1 5 6 7;
11+
#X msg 121 532 insert 1 foo bar;
12+
#X msg 163 565 delete 1;
13+
#X msg 426 692 send foo;
14+
#X msg 494 717 send \$1;
15+
#X obj 494 692 symbol \$0-x;
16+
#X obj 494 667 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000;
17+
#X msg 329 692 prepend 1 2 3;
1918
#X obj 264 1015 r \$0-x;
2019
#X obj 264 924 r foo;
2120
#X obj 264 950 print foo;
22-
#X msg 282 774 go dog go cat;
23-
#X msg 293 802 list w x y z;
24-
#X obj 264 1041 print \$0-x;
25-
#X msg 121 634 delete 4 -1;
26-
#X msg 111 601 delete 2 3;
21+
#X msg 614 679 go dog go cat;
22+
#X msg 649 703 list w x y z;
23+
#X msg 243 630 delete 4 -1;
24+
#X msg 204 597 delete 2 3;
2725
#X obj 26 429 bng 25 250 50 0 empty empty empty 0 -10 0 10 #191919 #ffffff #ffffff;
28-
#X obj 202 383 t b b;
29-
#X obj 26 383 t b b b b b b b b b;
26+
#X obj 463 375 t b b;
3027
#X obj 158 233 t b b;
3128
#X obj 197 134 t b b;
32-
#X obj 111 337 t b b;
29+
#X obj 220 337 t b b;
3330
#X msg 41 459 set 2 4;
3431
#X obj 75 179 del 100;
3532
#X obj 42 284 del 200;
3633
#X obj 92 134 del 30;
3734
#X obj 59 233 del 130;
3835
#X obj 26 337 del 230;
36+
#X msg 286 663 append 9 8 7;
37+
#X obj 264 1041 print recieve-x;
38+
#X obj 26 383 t b b b b b b b b b b b b b b b b;
39+
#X obj 64 492 bng 19 250 50 0 empty empty empty 0 -10 0 10 #191919 #ffffff #ffffff;
40+
#X obj 98 532 bng 19 250 50 0 empty empty empty 0 -10 0 10 #191919 #ffffff #ffffff;
41+
#X obj 139 565 bng 19 250 50 0 empty empty empty 0 -10 0 10 #191919 #ffffff #ffffff;
42+
#X obj 181 597 bng 19 250 50 0 empty empty empty 0 -10 0 10 #191919 #ffffff #ffffff;
43+
#X obj 219 630 bng 19 250 50 0 empty empty empty 0 -10 0 10 #191919 #ffffff #ffffff;
44+
#X obj 261 663 bng 19 250 50 0 empty empty empty 0 -10 0 10 #191919 #ffffff #ffffff;
45+
#X obj 304 692 bng 19 250 50 0 empty empty empty 0 -10 0 10 #191919 #ffffff #ffffff;
3946
#X connect 0 0 4 1;
4047
#X connect 3 0 2 0;
4148
#X connect 4 0 1 0;
4249
#X connect 4 1 3 0;
4350
#X connect 5 0 6 0;
4451
#X connect 6 0 7 0;
45-
#X connect 7 0 36 0;
46-
#X connect 7 1 33 0;
47-
#X connect 7 2 35 0;
48-
#X connect 7 3 32 0;
49-
#X connect 7 4 34 0;
50-
#X connect 7 5 29 0;
52+
#X connect 7 0 33 0;
53+
#X connect 7 1 30 0;
54+
#X connect 7 2 32 0;
55+
#X connect 7 3 29 0;
56+
#X connect 7 4 31 0;
57+
#X connect 7 5 26 0;
5158
#X connect 8 0 4 0;
5259
#X connect 9 0 4 0;
5360
#X connect 10 0 4 0;
@@ -56,34 +63,48 @@
5663
#X connect 13 0 12 0;
5764
#X connect 14 0 13 0;
5865
#X connect 15 0 4 0;
59-
#X connect 16 0 4 0;
60-
#X connect 17 0 22 0;
61-
#X connect 18 0 19 0;
66+
#X connect 16 0 35 0;
67+
#X connect 17 0 18 0;
68+
#X connect 19 0 4 1;
6269
#X connect 20 0 4 1;
63-
#X connect 21 0 4 1;
70+
#X connect 21 0 4 0;
71+
#X connect 22 0 4 0;
6472
#X connect 23 0 4 0;
65-
#X connect 24 0 4 0;
66-
#X connect 25 0 4 0;
67-
#X connect 26 0 11 0;
68-
#X connect 26 1 14 0;
69-
#X connect 27 0 25 0;
70-
#X connect 27 1 31 0;
71-
#X connect 27 2 8 0;
72-
#X connect 27 3 9 0;
73-
#X connect 27 4 10 0;
74-
#X connect 27 5 24 0;
75-
#X connect 27 6 23 0;
76-
#X connect 27 7 16 0;
77-
#X connect 27 8 15 0;
78-
#X connect 28 0 26 0;
79-
#X connect 28 1 21 0;
80-
#X connect 29 0 26 0;
81-
#X connect 29 1 0 0;
82-
#X connect 30 0 26 0;
83-
#X connect 30 1 20 0;
84-
#X connect 31 0 4 0;
85-
#X connect 32 0 28 0;
86-
#X connect 33 0 30 0;
87-
#X connect 34 0 27 0;
88-
#X connect 35 0 27 0;
89-
#X connect 36 0 27 0;
73+
#X connect 24 0 11 0;
74+
#X connect 24 1 14 0;
75+
#X connect 25 0 24 0;
76+
#X connect 25 1 20 0;
77+
#X connect 26 0 24 0;
78+
#X connect 26 1 0 0;
79+
#X connect 27 0 24 0;
80+
#X connect 27 1 19 0;
81+
#X connect 28 0 4 0;
82+
#X connect 29 0 25 0;
83+
#X connect 30 0 27 0;
84+
#X connect 31 0 36 0;
85+
#X connect 32 0 36 0;
86+
#X connect 33 0 36 0;
87+
#X connect 34 0 4 0;
88+
#X connect 36 0 23 0;
89+
#X connect 36 1 28 0;
90+
#X connect 36 2 37 0;
91+
#X connect 36 3 8 0;
92+
#X connect 36 4 38 0;
93+
#X connect 36 5 9 0;
94+
#X connect 36 6 39 0;
95+
#X connect 36 7 10 0;
96+
#X connect 36 8 40 0;
97+
#X connect 36 9 22 0;
98+
#X connect 36 10 41 0;
99+
#X connect 36 11 21 0;
100+
#X connect 36 12 42 0;
101+
#X connect 36 13 34 0;
102+
#X connect 36 14 43 0;
103+
#X connect 36 15 15 0;
104+
#X connect 37 0 4 0;
105+
#X connect 38 0 4 0;
106+
#X connect 39 0 4 0;
107+
#X connect 40 0 4 0;
108+
#X connect 41 0 4 0;
109+
#X connect 42 0 4 0;
110+
#X connect 43 0 4 0;

0 commit comments

Comments
 (0)