Malte Ubl
9b98571b4a
Retain string-keyed map reads inline
...
Map.get of a reference value under a string key called scr_map_get_str_ref,
which retained the hit through the collection's value adapter: an indirect
tail call into an out-of-line retain function on every hit (in tsc-ts the
symbol tables' Symbol and Type retains, 0.4% of samples, were only reached
that way). Number keys already read the entry and retain with the value
type's own retain. String keys now do the same: scr_map_entry_str returns the
entry, and the generated code loads the value slot and retains it inline.
Both the ordinary and the stack-boxed (local) reads take the entry path.
Corpus 4651 keeps string-keyed results alive past delete, overwrite, clear
and the map itself for instances, records, arrays, nested maps, cycles and
union values; dropping the inline retain makes it (and 523) fail under ASan.
2026-10-11 06:42:21 -07:00
..
2026-10-02 19:56:34 -05:00
2026-10-09 17:43:51 -07:00
2026-10-09 17:43:49 -07:00
2026-10-09 17:43:49 -07:00
2026-10-10 01:00:36 -05:00
2026-10-07 19:07:02 -05:00
2026-10-07 19:07:02 -05:00
2026-10-09 17:43:50 -07:00
2026-09-26 19:09:54 -05:00
2026-10-05 17:51:24 -05:00
2026-09-18 00:21:12 -05:00
2026-10-05 09:32:14 -05:00
2026-10-07 19:07:02 -05:00
2026-10-09 10:10:22 -07:00
2026-10-06 13:07:11 -05:00
2026-10-07 19:07:02 -05:00
2026-10-09 10:10:25 -07:00
2026-10-09 10:30:31 -05:00
2026-09-30 14:25:29 -05:00
2026-10-10 10:08:39 -05:00
2026-10-09 17:43:50 -07:00
2026-10-07 19:07:02 -05:00
2026-10-07 19:07:02 -05:00
2026-10-07 19:07:02 -05:00
2026-10-03 01:47:42 -05:00
2026-10-09 17:43:51 -07:00
2026-10-08 11:00:13 -05:00
2026-10-07 19:07:02 -05:00
2026-08-23 20:16:13 -05:00
2026-10-08 15:01:26 -05:00
2026-10-09 10:10:25 -07:00
2026-10-09 10:10:25 -07:00
2026-10-08 11:00:13 -05:00
2026-10-09 17:43:50 -07:00
2026-10-07 19:07:02 -05:00
2026-10-07 19:07:02 -05:00
2026-08-16 22:59:02 -05:00
2026-10-07 19:07:02 -05:00
2026-10-07 19:07:02 -05:00
2026-09-28 19:01:50 -05:00
2026-09-28 19:01:50 -05:00
2026-10-07 19:07:02 -05:00
2026-10-08 15:42:37 -05:00
2026-08-23 20:16:13 -05:00
2026-10-09 10:30:31 -05:00
2026-10-04 06:07:41 -05:00
2026-10-09 17:54:40 -05:00
2026-10-10 00:57:58 -05:00
2026-10-08 17:41:20 -05:00
2026-10-08 15:01:26 -05:00
2026-10-08 15:40:53 -05:00
2026-10-09 10:30:31 -05:00
2026-09-30 01:09:15 -05:00
2026-08-23 20:16:13 -05:00
2026-07-22 18:08:04 -05:00
2026-08-23 20:16:13 -05:00
2026-10-07 19:07:02 -05:00
2026-10-07 19:07:02 -05:00
2026-10-07 19:07:02 -05:00
2026-10-07 19:07:02 -05:00
2026-10-11 06:42:21 -07:00
2026-10-09 10:10:20 -07:00
2026-10-09 10:10:20 -07:00
2026-10-10 01:00:36 -05:00
2026-10-07 19:07:02 -05:00
2026-10-07 19:07:02 -05:00
2026-10-07 19:07:02 -05:00
2026-08-23 20:16:13 -05:00
2026-08-23 20:16:13 -05:00
2026-10-08 15:42:37 -05:00
2026-10-03 18:34:51 -05:00
2026-10-08 15:49:53 -05:00
2026-10-06 13:07:11 -05:00
2026-10-06 13:07:11 -05:00
2026-10-06 13:07:11 -05:00
2026-10-09 10:10:25 -07:00
2026-10-07 19:07:02 -05:00
2026-08-23 20:16:13 -05:00
2026-10-10 01:00:36 -05:00
2026-10-02 19:56:34 -05:00
2026-10-07 19:07:02 -05:00
2026-10-08 15:19:12 -05:00
2026-10-09 10:10:21 -07:00
2026-10-11 06:42:21 -07:00
2026-10-07 19:07:02 -05:00
2026-10-07 19:07:02 -05:00
2026-10-07 19:07:02 -05:00
2026-10-09 10:10:25 -07:00
2026-10-10 00:57:58 -05:00
2026-10-03 19:21:34 -05:00
2026-10-03 18:34:51 -05:00
2026-10-07 19:07:02 -05:00
2026-08-09 23:15:51 -05:00
2026-10-03 05:38:29 -05:00
2026-10-07 19:07:02 -05:00
2026-10-07 19:07:02 -05:00
2026-10-10 01:00:36 -05:00
2026-10-04 04:14:12 -05:00
2026-10-04 01:57:10 -05:00
2026-10-04 04:14:12 -05:00
2026-10-07 19:07:02 -05:00
2026-10-07 19:07:02 -05:00
2026-10-04 21:18:58 -05:00
2026-10-07 19:07:02 -05:00
2026-10-04 06:07:41 -05:00
2026-08-10 12:21:11 -05:00
2026-09-29 20:54:09 -05:00
2026-10-09 10:10:25 -07:00
2026-10-09 17:43:50 -07:00
2026-10-07 19:07:02 -05:00
2026-10-07 19:07:02 -05:00
2026-10-07 19:07:02 -05:00
2026-08-23 20:16:13 -05:00
2026-10-07 19:07:02 -05:00