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
..
2024-10-18 16:52:07 +02:00
2024-03-18 20:27:00 +01:00
2023-08-06 14:26:21 +02:00
2023-12-15 10:20:57 +01:00
2024-10-30 22:58:39 +01:00
2024-04-10 14:41:16 +02:00
2024-04-16 12:46:59 +02:00
2024-07-12 15:23:09 +02:00
2023-10-11 17:44:14 +02:00
2023-08-06 14:26:21 +02:00
2024-11-12 19:39:22 +01:00
2024-11-12 19:39:22 +01:00
2024-11-09 06:47:35 +01:00
2024-11-12 19:39:22 +01:00
2024-11-05 09:31:35 +01:00
2024-11-12 19:39:22 +01:00
2024-11-03 14:59:50 +01:00
2022-11-30 21:51:13 +01:00
2024-11-05 10:30:47 +01:00
2024-11-12 14:32:43 +01:00
2024-11-10 19:58:48 +01:00
2024-11-05 10:30:47 +01:00
2024-11-10 19:58:48 +01:00
2024-06-07 09:01:30 +02:00
2024-11-10 19:58:48 +01:00
2024-11-10 19:58:48 +01:00
2024-10-18 16:52:07 +02:00
2024-10-18 16:52:07 +02:00
2024-03-28 11:04:12 +01:00
2024-08-12 15:18:56 +02:00
2023-06-18 16:06:14 +02:00
2024-10-06 12:55:34 +02:00
2024-10-19 10:07:00 +02:00
2017-01-07 22:35:09 +01:00
2022-06-10 20:40:08 +02:00
2023-10-29 14:48:11 +01:00
2024-04-22 13:04:30 +02:00
2023-08-06 14:26:21 +02:00
2024-10-19 16:39:15 +02:00
2023-12-17 18:43:52 +01:00
2023-11-20 21:12:13 +01:00
2024-10-18 16:52:07 +02:00
2024-10-18 16:52:07 +02:00
2024-08-28 20:46:36 +02:00
2024-10-12 21:17:30 +02:00
2023-10-29 14:48:11 +01:00
2023-10-29 14:48:11 +01:00
2023-10-29 14:48:11 +01:00
2024-10-18 16:52:07 +02:00
2023-09-01 06:41:39 +02:00
2023-10-29 14:48:11 +01:00
2024-09-23 10:14:26 +02:00
2020-06-01 19:21:41 +02:00
2024-10-18 16:52:07 +02:00
2024-06-04 09:50:35 +02:00
2023-12-15 08:13:25 +01:00
2023-12-14 16:25:34 +01:00
2024-10-25 22:36:19 +02:00
2023-12-13 10:29:58 +01:00
2024-10-18 16:52:07 +02:00
2024-10-06 12:55:34 +02:00
2023-12-13 10:39:10 +01:00
2023-12-15 08:13:25 +01:00
2024-10-18 16:52:07 +02:00
2024-10-18 16:52:07 +02:00
2024-10-03 20:39:55 +02:00
2024-10-11 12:00:05 +02:00
2024-07-20 05:40:38 +02:00
2024-09-27 09:34:13 +02:00
2024-10-18 16:52:07 +02:00
2021-01-12 09:36:51 +01:00
2024-10-18 16:52:07 +02:00
2024-07-09 09:29:45 +02:00
2024-04-05 08:54:48 +02:00
2024-10-12 21:46:56 +02:00
2024-01-05 08:17:08 +01:00
2024-10-17 15:16:57 +02:00
2024-09-16 20:45:00 +02:00
2024-10-18 16:52:07 +02:00
2024-10-06 08:35:03 +02:00
2024-07-17 18:25:19 +02:00
2023-12-15 08:13:25 +01:00
2023-12-15 08:13:25 +01:00
2024-04-10 14:41:16 +02:00
2023-10-29 14:48:11 +01:00
2023-10-29 14:48:11 +01:00
2024-10-18 16:52:07 +02:00
2023-10-29 14:48:11 +01:00
2024-08-12 15:33:26 +02:00
2023-04-17 20:55:22 +02:00
2024-04-10 14:41:16 +02:00
2024-10-25 11:26:42 +02:00
2023-08-06 14:26:21 +02:00
2024-10-11 12:00:05 +02:00
2024-09-03 09:18:38 +02:00
2024-09-18 22:45:19 +02:00
2022-08-24 09:44:16 +02:00
2024-10-29 08:01:44 +01:00
2023-10-29 14:48:11 +01:00
2023-12-17 18:43:52 +01:00
2024-10-06 19:35:20 +02:00
2023-03-03 07:36:38 +01:00
2023-10-29 14:48:11 +01:00
2018-05-27 19:19:12 +02:00
2024-10-18 16:52:07 +02:00
2023-10-29 14:48:11 +01:00
2024-04-10 14:41:16 +02:00
2024-09-03 09:19:52 +02:00
2023-07-02 22:36:05 +02:00
2024-10-14 17:43:12 +02:00
2023-10-29 14:48:11 +01:00
2024-09-06 11:26:24 +02:00
2023-11-06 18:33:28 +01:00
2023-08-10 14:26:40 +02:00
2020-09-11 01:04:07 +02:00
2023-10-29 14:48:11 +01:00
2024-11-10 17:16:07 +01:00
2024-11-06 10:54:03 +01:00
2024-10-30 08:58:04 +01:00
2024-11-06 10:54:03 +01:00
2024-10-22 19:56:37 +02:00
2024-10-19 10:07:00 +02:00
2024-10-18 16:52:07 +02:00
2024-10-18 16:52:07 +02:00
2024-10-18 16:52:07 +02:00
2024-10-25 22:35:26 +02:00
2024-10-18 16:52:07 +02:00
2024-10-18 16:52:07 +02:00
2024-11-05 15:14:57 +01:00
2024-11-09 12:33:23 +01:00
2022-12-11 16:58:50 +01:00
2024-10-18 16:52:07 +02:00
2024-10-30 08:58:04 +01:00
2024-10-30 08:58:04 +01:00
2024-08-16 06:33:43 +02:00
2024-11-12 14:31:59 +01:00
2023-11-20 21:12:13 +01:00
2024-10-18 16:52:07 +02:00
2024-03-16 08:35:18 +08:00
2024-10-18 16:52:07 +02:00
2024-05-08 09:10:48 -06:00
2024-03-15 18:20:10 +01:00
2024-04-10 14:41:16 +02:00
2023-08-10 14:26:40 +02:00
2024-11-12 22:57:31 +01:00
2024-10-07 11:39:26 +02:00
2023-10-29 14:48:11 +01:00
2024-08-28 20:46:36 +02:00
2024-11-12 14:31:59 +01:00
2023-10-29 14:48:11 +01:00
2024-08-20 11:57:47 +02:00
2024-10-19 10:07:00 +02:00
2023-12-12 16:54:50 +01:00
2024-10-19 10:07:00 +02:00
2024-10-18 16:52:07 +02:00
2024-10-26 17:48:39 +02:00
2023-08-10 14:26:40 +02:00
2024-04-10 14:41:16 +02:00
2024-08-11 16:13:26 +02:00
2023-10-29 14:48:11 +01:00
2024-10-18 16:52:07 +02:00
2023-12-25 07:12:54 +01:00