Stephen Adams
6dd17d6ec4
[runtime] Avoid SIGSEGV on String.*
...
Correctness changes:
Fix SEGV by checking for overflow in computing the length of the
repeated string.
Performance changes:
Use unnested loops to fill the string instead of nested loops.
Implement `operator *` for _TwoByteString in the same way.
(The default implementation using StringBuffer causes a lot of
allocations. For example, `"α" * 10000` repeatedly adds the small
string to the StringBuffer, which repeatedly compresses a sequence of
small strings to make a bigger string to stop the list of parts
becoming too large. This compression creates a lot of small strings
with the same contents.)
Bug: 49289
Change-Id: I06c3d91b531d7e4fffc8de9f3bada3eb62ad185f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/249122
Reviewed-by: Lasse Nielsen <lrn@google.com >
Commit-Queue: Stephen Adams <sra@google.com >
2022-06-19 17:02:41 +00:00
..
2021-04-26 17:58:57 +00:00
2021-05-05 01:06:12 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-06-24 03:29:38 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2022-03-08 18:08:44 +00:00
2022-05-19 23:29:51 +00:00
2022-03-08 18:08:44 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2022-03-08 18:08:44 +00:00
2022-03-08 18:08:44 +00:00
2021-04-26 17:58:57 +00:00
2022-05-26 22:54:29 +00:00
2022-05-26 22:54:29 +00:00
2022-03-08 18:08:44 +00:00
2021-11-25 22:53:53 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2022-02-03 20:32:16 +00:00
2022-02-22 10:47:41 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-10-11 14:31:37 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2022-06-15 11:08:28 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2022-06-15 11:08:28 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2022-04-25 14:37:42 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-11-10 21:36:13 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2022-02-16 01:32:14 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2022-06-15 11:08:28 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-08-04 10:44:00 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-06-09 02:50:50 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-09-29 02:45:32 +00:00
2021-04-26 17:58:57 +00:00
2022-06-19 17:02:41 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2022-05-24 09:10:51 +00:00
2022-01-13 20:52:33 +00:00
2022-01-13 20:52:33 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2022-05-24 09:10:51 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2022-05-24 09:10:51 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2022-02-08 21:38:57 +00:00
2021-04-26 17:58:57 +00:00
2022-06-03 18:07:27 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-04-26 17:58:57 +00:00
2021-06-03 22:47:56 +00:00