Files
Nim/tests/arc
ringabout 21420d8b09 fixes #24402; Memory leak under Arc/Orc on inline iterators with nested seq (#24419)
fixes #24402

```nim
iterator myPairsInline*[T](twoDarray: seq[seq[T]]): (int, seq[T]) {.inline.} =
  for indexValuePair in twoDarray.pairs:
    yield indexValuePair

proc innerTestTotalMem() =
  var my2dArray: seq[seq[int32]] = @[]

  # fill with some data...
  for i in 0'i32..100:
    var z = @[i, i+1]
    my2dArray.add z

  for oneDindex, innerArray in myPairsInline(my2dArray):
    discard

innerTestTotalMem()
```

In `for oneDindex, innerArray in myPairsInline(my2dArray)`, `oneDindex`
and `innerArray` becomes `cursors` because they satisfy the criterion of
`isSimpleIteratorVar`. On the one hand, it is not correct to have them
point to the temporary generated by tuple unpacking, which left the
memory of the temporary uncleaned up. On the other hand, we don't need
to generate a temporary for a symbol node when unpacking the tuple.
2024-11-12 22:57:31 +01:00
..
2020-07-07 22:43:36 +02:00
2020-07-07 22:43:36 +02:00
2020-07-10 18:10:32 +02:00
2021-01-20 11:05:56 +01:00
2020-10-12 10:12:32 +01:00
2020-07-07 22:43:36 +02:00
2020-11-12 09:28:32 +01:00
2021-03-04 19:33:16 +01:00
2023-07-06 15:15:50 +02:00
2021-10-29 19:55:48 +02:00
2022-10-02 06:44:10 +02:00
2020-03-09 15:32:38 +01:00
2020-11-26 10:24:52 +01:00
2020-10-19 22:25:43 +02:00
2023-06-30 14:54:46 +02:00
2021-03-06 22:35:02 +01:00
2020-11-26 10:24:52 +01:00
2023-06-02 16:03:32 +02:00
2020-03-09 15:32:38 +01:00
2022-10-17 23:48:51 +02:00
2021-07-13 12:44:29 +02:00
2020-04-22 17:34:35 +02:00
2020-10-19 22:25:43 +02:00
2020-09-11 01:50:42 +02:00
2021-07-27 09:36:19 +02:00
2020-09-20 10:43:57 +02:00
2023-06-27 22:42:48 +02:00
2022-10-01 16:46:51 +02:00
2020-09-24 15:41:45 +02:00
2020-11-09 12:26:12 +01:00
2021-06-25 14:12:23 +02:00
2021-02-08 09:46:07 +01:00
2021-07-13 14:17:59 +02:00
2020-07-04 07:37:24 +02:00
2021-07-27 14:32:56 +02:00