commit | a8d034f3e176732cf31df2c7b4ab1e3b673930b3 | [log] [tgz] |
---|---|---|
author | Alexander Markov <alexmarkov@google.com> | Tue Apr 30 17:07:20 2019 +0000 |
committer | commit-bot@chromium.org <commit-bot@chromium.org> | Tue Apr 30 17:07:20 2019 +0000 |
tree | 967ac7e42298975aa2e6dbf68774a3e03aa565ff | |
parent | 25daff618d393961359166227b496ae126897ac3 [diff] |
[vm/reload] Make sure classes in saved class table are visited by GC Previously, IsolateReloadContext::CheckpointClasses() was filling local_saved_class_table with raw pointers to classes and at the same time it was adding classes to the set which is based on Array. After that local_saved_class_table was saved into saved_class_table_ were it becomes visible to GC. However, adding an element to the set may trigger GC in the middle and pointers for already processed classes in local_saved_class_table are not visited and are not updated if GC moves a Class object. Also, IsolateReloadContext::VisitObjectPointers was not visiting classes in saved_class_table_ properly as it was interpreting it as an array of saved_num_cids_ pointers (while it is an array of ClassAndSize elements). This change fixes flaky crashes in vm/dart/trigger_gc_in_native_test. Change-Id: I25b2e50995cf580bc9347f06875d344f75a1a950 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/100728 Reviewed-by: Ryan Macnak <rmacnak@google.com> Commit-Queue: Alexander Markov <alexmarkov@google.com>
Dart is an open-source, scalable programming language, with robust libraries and runtimes, for building web, server, and mobile apps.
Visit the dartlang.org to learn more about the language, tools, getting started, and more.
Browse pub.dartlang.org for more packages and libraries contributed by the community and the Dart team.
If you want to build Dart yourself, here is a guide to getting the source, preparing your machine to build the SDK, and building.
There are more documents on our wiki.
The easiest way to contribute to Dart is to file issues.
You can also contribute patches, as described in Contributing.