Nate Biggs
63d042fe0d
[dart2wasm] Fix dynamic dispatch table population for multiple modules.
...
When deferred loading was enabled the dynamic dispatch class ID table
was incorrectly assigning class IDs to the wrong module. If a contiguous
target segment included classes/targets from different modules, all of
them were getting assigned to the module of the first class/target in
that segment.
This was causing spurious NSM exceptions as the necessary rows in the
table might not be populated for a dynamic call if the module the
segment was assigned to wasn't loaded yet.
To fix this we end the segment if the next target does not belong to the
same module as the active segment.
The new test fails with an NSM exception prior to this fix.
Change-Id: I07bc4fdb5a8bff1bfad5fe17f45c8076a965a775
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/502860
Commit-Queue: Nate Biggs <natebiggs@google.com >
Reviewed-by: Martin Kustermann <kustermann@google.com >
2026-05-12 12:54:38 -07:00
..
2025-06-24 12:06:22 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2026-03-20 09:09:46 -07:00
2026-01-28 15:33:35 -08:00
2025-05-02 20:17:11 -07:00
2026-05-12 12:54:38 -07:00
2025-05-02 20:17:11 -07:00
2024-07-30 03:13:58 +00:00
2024-12-13 11:10:26 -08:00
2024-12-13 14:09:46 -08:00
2024-10-11 16:53:52 +00:00
2024-07-30 03:13:58 +00:00
2023-08-09 23:17:18 +00:00
2025-05-02 20:17:11 -07:00
2025-05-02 20:17:11 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2024-11-19 00:59:10 +00:00
2024-10-09 08:38:48 +00:00
2025-05-02 20:17:11 -07:00
2024-10-09 08:38:48 +00:00
2025-09-22 14:25:22 -07:00
2025-06-20 20:11:25 -07:00
2025-05-02 20:17:11 -07:00
2025-05-02 20:17:11 -07:00
2025-05-02 20:17:11 -07:00
2025-05-02 20:17:11 -07:00
2024-11-19 00:59:10 +00:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2024-09-10 15:29:28 +00:00
2025-06-20 20:11:25 -07:00
2024-07-10 01:39:58 +00:00
2024-07-10 01:39:58 +00:00
2025-05-02 20:17:11 -07:00
2025-05-02 20:17:11 -07:00
2024-11-19 00:59:10 +00:00
2025-06-24 12:06:22 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2023-10-25 15:37:50 +00:00
2023-10-25 15:37:50 +00:00
2024-10-11 16:53:52 +00:00
2025-06-20 20:11:25 -07:00
2023-06-07 17:57:26 +00:00
2024-11-19 00:59:10 +00:00
2025-06-20 20:11:25 -07:00
2024-11-19 00:59:10 +00:00
2025-05-02 20:17:11 -07:00
2025-05-02 20:17:11 -07:00
2024-11-19 00:59:10 +00:00
2025-05-02 20:17:11 -07:00
2025-06-20 20:11:25 -07:00
2026-02-17 08:28:57 -08:00
2024-01-23 01:26:09 +00:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-05-02 20:17:11 -07:00
2025-05-02 20:17:11 -07:00
2024-11-19 00:59:10 +00:00
2025-06-20 20:11:25 -07:00
2025-05-02 20:17:11 -07:00
2025-06-20 20:11:25 -07:00
2024-11-19 00:59:10 +00:00
2025-05-02 20:17:11 -07:00
2025-06-20 20:11:25 -07:00
2024-11-19 00:59:10 +00:00
2026-02-17 08:28:57 -08:00
2024-11-19 00:59:10 +00:00
2025-05-02 20:17:11 -07:00
2026-02-09 05:40:11 -08:00
2025-05-02 20:17:11 -07:00
2025-05-02 20:17:11 -07:00
2024-06-12 21:28:23 +00:00
2024-06-12 21:28:23 +00:00
2025-05-02 20:17:11 -07:00
2025-05-02 20:17:11 -07:00
2025-05-02 20:17:11 -07:00
2024-11-19 00:59:10 +00:00
2024-11-19 00:59:10 +00:00
2025-05-02 20:17:11 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2024-11-19 00:59:10 +00:00
2025-05-02 20:17:11 -07:00
2025-06-13 16:16:13 -07:00
2025-05-02 20:17:11 -07:00
2025-06-20 20:11:25 -07:00
2024-11-19 00:59:10 +00:00
2025-05-02 20:17:11 -07:00
2025-05-02 20:17:11 -07:00
2025-05-02 20:17:11 -07:00
2024-11-19 00:59:10 +00:00
2024-01-23 01:26:09 +00:00
2024-01-23 01:26:09 +00:00
2024-01-23 01:26:09 +00:00
2025-08-22 20:48:35 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-05-02 20:17:11 -07:00
2024-11-19 00:59:10 +00:00
2023-05-25 23:45:25 +00:00
2025-05-02 20:17:11 -07:00
2025-05-02 20:17:11 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2026-02-17 08:28:57 -08:00
2026-02-17 08:28:57 -08:00
2026-02-17 08:28:57 -08:00
2026-02-17 08:28:57 -08:00
2025-05-02 20:17:11 -07:00
2025-06-13 16:16:13 -07:00
2025-06-13 16:16:13 -07:00
2025-05-02 20:17:11 -07:00
2024-01-23 01:26:09 +00:00
2024-11-19 00:59:10 +00:00
2024-12-16 10:01:23 -08:00
2025-06-20 20:11:25 -07:00
2024-11-19 00:59:10 +00:00
2024-11-19 00:59:10 +00:00
2025-05-02 20:17:11 -07:00
2025-05-02 20:17:11 -07:00
2025-05-02 20:17:11 -07:00
2025-06-20 20:11:25 -07:00
2024-11-19 00:59:10 +00:00
2026-02-06 11:00:10 -08:00