1 | .include 'datatypes.pasm' |
---|

2 | |
---|

3 | .sub main :main |
---|

4 | |
---|

5 | # a workaround is to set this to min(2,size) |
---|

6 | .local int size |
---|

7 | size = 1 |
---|

8 | |
---|

9 | .local pmc a_rma, a_umc, a_n |
---|

10 | a_rma = new 'ResizablePMCArray' |
---|

11 | push a_rma, .DATATYPE_DOUBLE |
---|

12 | push a_rma, 0 |
---|

13 | push a_rma, 0 |
---|

14 | push a_rma, .DATATYPE_DOUBLE |
---|

15 | push a_rma, 0 |
---|

16 | push a_rma, 0 |
---|

17 | a_umc = new 'UnManagedStruct', a_rma |
---|

18 | |
---|

19 | .local pmc a_rma_outer |
---|

20 | a_rma_outer = new 'ResizablePMCArray' |
---|

21 | push a_rma_outer, .DATATYPE_STRUCT |
---|

22 | $P0 = a_rma_outer[-1] |
---|

23 | setprop $P0, "_struct", a_umc |
---|

24 | push a_rma_outer, size |
---|

25 | push a_rma_outer, 0 |
---|

26 | |
---|

27 | a_n = new 'ManagedStruct', a_rma_outer |
---|

28 | |
---|

29 | a_n[0;0;0] = 10.5 |
---|

30 | a_n[0;0;1] = 20.2 |
---|

31 | |
---|

32 | # if size = 2,3,4 then okay |
---|

33 | |
---|

34 | #a_n[0;1;0] = 10.5 |
---|

35 | #a_n[0;1;1] = 20.2 |
---|

36 | |
---|

37 | #a_n[0;2;0] = 10.5 |
---|

38 | #a_n[0;2;1] = 20.2 |
---|

39 | |
---|

40 | #a_n[0;3;0] = 10.5 |
---|

41 | #a_n[0;3;1] = 20.2 |
---|

42 | |
---|

43 | .end |
---|

44 | |
---|

45 | # Local Variables: |
---|

46 | # mode: pir |
---|

47 | # fill-column: 100 |
---|

48 | # End: |
---|

49 | # vim: expandtab shiftwidth=4 ft=pir: |
---|

50 | |
---|