commit | 1dd45592712299947974158e4d3937397d099ac1 | [log] [tgz] |
---|---|---|
author | Vyacheslav Egorov <vegorov@google.com> | Fri Mar 08 00:06:37 2019 +0000 |
committer | commit-bot@chromium.org <commit-bot@chromium.org> | Fri Mar 08 00:06:37 2019 +0000 |
tree | beb43aaf585250721cb0732ae448853bc9d141a2 | |
parent | 34953ffd7dff0a7f62a27252045bb07d59cfaf2e [diff] |
[vm] Add Native->VM transitions when dereferencing API handles. For example setting return value unwraps handles and stores raw pointer values to the stack which might race with GC in another thread. This CL adds assertions in helper methods from Api class which unwrap API handles and fixes all places that were revealed by those assertions. Caveat: we still permit to check whether handle contains Smi or not without entering VM state - because GC does not change this property. Bug: b/127482366 Change-Id: I59f08c2a91935995514fb70607c2777aa2844d94 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/95654 Commit-Queue: Siva Annamalai <asiva@google.com> Reviewed-by: Ryan Macnak <rmacnak@google.com> Reviewed-by: Martin Kustermann <kustermann@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.