commit | 0069beb7ede283690e51e4103d41123e908e3791 | [log] [tgz] |
---|---|---|
author | Alexander Markov <alexmarkov@google.com> | Thu May 09 20:20:51 2019 +0000 |
committer | commit-bot@chromium.org <commit-bot@chromium.org> | Thu May 09 20:20:51 2019 +0000 |
tree | cc0eb2a83d5f0322dd96247674abf1c1055a1f5a | |
parent | 536ecbac7b6bd0e0c6fcd6ae95f8eaa60363515c [diff] |
[vm/interpreter] Cleanup stack slot in Interpreter::InterfaceCall The stack slot in question may contain a stale value, but it could be scanned by GC, so the fix is to clean it up even if it looks unused. While debugging I saw bytecode PCs in that stack slot. So it is likely that compact bytecode instructions (68de4775351d0e3e1ec8b5860068733c342f7f4e) increased the probability of these crashes, as with compact bytecodes PCs could be unaligned and treated as Dart objects by GC, while previously PCs were always aligned and treated as Smis by GC, effectively masking the failure. Fixes https://github.com/dart-lang/sdk/issues/36909 Change-Id: I82ccaa2bd87aca4ca4b44c9db69b0efd18dad955 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/102061 Reviewed-by: RĂ©gis Crelier <regis@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.