dart-sdk/tools
Alexander Markov badc77239a [vm/aot] Avoid unbinding canonical names in AOT transformations
AOT transformations (mixin deduplication and TFA tree shaker) were
using CanonicalName.unbind() in order to make sure that kernel
writer will not be able to write dangling references to the deleted
classes or members (to detect such dangling references earlier).

This conflicts with lazy reading from a kernel file if --from-dill
option is used: lazy reader may read a reference to such class after
unbind() and it creates a new Reference object for such canonical name.
This causes crash later when the fresh Reference is used as it doesn't
have Class node filled in.

The solution is to avoid calling CanonicalName.unbind().
Instead, it is enough to nullify node.reference.canonicalName, which
won't break CanonicalName.reference used by lazy reader.

This crash can be reproduced on tests/language_2/vm/regress_flutter_55345_test.dart
if it is compiled in AOT mode using 2-step kernel generation.

Bug: b/158853113
Change-Id: Ib2004dbbbda85d9f56adc56b48882f4ef08869a7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/151120
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2020-06-15 22:00:42 +00:00
..
abiversions [SDK] Adds documentation about updating ABI_VERSION 2020-05-07 12:33:37 +00:00
android Mass format python with yapf 2019-08-05 20:34:31 +00:00
apps/update_homebrew [homebrew] Modify the version string when updating the version 2020-04-03 10:32:34 +00:00
bots [vm/aot] Avoid unbinding canonical names in AOT transformations 2020-06-15 22:00:42 +00:00
buildtools Mass format python with yapf 2019-08-05 20:34:31 +00:00
dart2js Update File.openRead to return Stream<Uint8List> 2019-06-27 00:22:17 +00:00
dom [dart:html] Add rename/metadata for some attributes 2020-06-12 00:52:46 +00:00
linux_dist_support/debian [vm] Build dart2native dependencies with the normal "create_sdk" target 2020-06-15 15:17:35 +00:00
migration Print a count of how many language subdirectories have been migrated. 2020-06-03 22:56:40 +00:00
patches [vm] Require only an isolate group, not an isolate, in Dart_Delete[Weak]PersistentHandle. 2020-03-04 18:56:16 +00:00
sdks [release] Update checked-in SDKs to 2.9.0-4.0.dev 2020-04-28 14:20:48 +00:00
spec_parser Change null-aware operator [], operator []=, and function call to not have a period. 2020-01-22 10:18:26 +00:00
test_generators Migrate language_2/async_nested to NNBD. 2020-02-12 20:46:37 +00:00
testing [infra] Remove obsolete webdriver/selenium support from testing 2019-06-18 06:59:09 +00:00
.gitignore Reland https://dart-review.googlesource.com/c/sdk/+/96500 2019-03-13 21:03:01 +00:00
3xhead_flutter_hooks.sh [infra] Extend 3head patching to apply patches for flutter/flutter depending on pinned engine commit 2019-02-04 12:37:10 +00:00
addlatexhash.dart [tools] Fix addlatexhash.dart in NNBD mode 2020-03-23 19:47:52 +00:00
build.py Add an --os=fuchsia option to build.py: 2020-06-15 20:05:16 +00:00
canary.dart
clean_output_directory.py Mass format python with yapf 2019-08-05 20:34:31 +00:00
copy_dart.py Force copy_dart.py to use python2.7 2020-05-29 22:57:27 +00:00
copy_tree.py Mass format python with yapf 2019-08-05 20:34:31 +00:00
create_debian_chroot.sh [infra] Remove wheezy left overs from SDK 2020-06-04 18:32:29 +00:00
create_debian_packages.py Mass format python with yapf 2019-08-05 20:34:31 +00:00
create_pkg_manifest.py Mass format python with yapf 2019-08-05 20:34:31 +00:00
create_tarball.py Mass format python with yapf 2019-08-05 20:34:31 +00:00
create_timestamp_file.py Mass format python with yapf 2019-08-05 20:34:31 +00:00
diff_results.dart [vm] DBC is obsolete. Remove dead code. 2019-10-27 18:18:29 +00:00
download_abi_dills.py Mass format python with yapf 2019-08-05 20:34:31 +00:00
download_chromium_sysroot.sh [infra] Remove wheezy left overs from SDK 2020-06-04 18:32:29 +00:00
download_latest_dev_sdk.py Mass format python with yapf 2019-08-05 20:34:31 +00:00
execute_recorded_testcases.py Mass format python with yapf 2019-08-05 20:34:31 +00:00
experimental_features.yaml Move extension methods experiment to shipped list 2020-06-02 12:43:21 +00:00
FAKE_COMMITS [infra] Remove obsolete buildbot paths/terms 2020-06-10 20:59:46 +00:00
find_depot_tools.py Mass format python with yapf 2019-08-05 20:34:31 +00:00
gen_fuchsia_test_manifest.py Mass format python with yapf 2019-08-05 20:34:31 +00:00
generate_buildfiles.py [vm] DBC is obsolete. Remove dead code. 2019-10-27 18:18:29 +00:00
generate_idefiles.py [tools] Update generate_idefiles.py to exclude analyzing sdk_nnbd 2019-09-26 17:31:50 +00:00
generate_package_config.dart Remove references to removed tools/gardening 2020-05-12 18:42:30 +00:00
gn.py Add an --os=fuchsia option to build.py: 2020-06-15 20:05:16 +00:00
gn_helpers.py Mass format python with yapf 2019-08-05 20:34:31 +00:00
line_doc_comments.dart
list_dart_files.py Fix list_files.py so it is python3-compatible. 2020-02-15 00:12:50 +00:00
list_files.py Fix list_files.py so it is python3-compatible. 2020-02-15 00:12:50 +00:00
make_bundle_unittest.py Mass format python with yapf 2019-08-05 20:34:31 +00:00
make_version.py [vm] Add the channel name to the VM/dart:io version string 2020-03-23 10:00:03 +00:00
minidump.py Mass format python with yapf 2019-08-05 20:34:31 +00:00
only_in_release_mode.py Mass format python with yapf 2019-08-05 20:34:31 +00:00
presubmit.sh
promote.py [infra] Remove wheezy left overs from SDK 2020-06-04 18:32:29 +00:00
publish_pkg.py Mass format python with yapf 2019-08-05 20:34:31 +00:00
revert.py Mass format python with yapf 2019-08-05 20:34:31 +00:00
run_abi_tests.py [infra] Add explanation to ABI test logs 2020-06-12 15:58:25 +00:00
run_debian_build.sh [infra] Fix debianpackage build 2019-04-01 08:26:46 +00:00
run_offsets_extractor.sh [vm] Update offsets 2020-01-27 15:59:56 +00:00
safari_factory_reset.py Mass format python with yapf 2019-08-05 20:34:31 +00:00
set_ia32_sysroot.sh [build] Move to Jessie sysroots from Wheezy sysroots. 2018-10-25 15:05:22 +00:00
set_x64_sysroot.sh [build] Move to Jessie sysroots from Wheezy sysroots. 2018-10-25 15:05:22 +00:00
spec_parse.py Mass format python with yapf 2019-08-05 20:34:31 +00:00
task_kill.py Mass format python with yapf 2019-08-05 20:34:31 +00:00
test.dart [infra] Handle test steps with no tested configuration 2020-03-27 07:09:37 +00:00
test.py Mass format python with yapf 2019-08-05 20:34:31 +00:00
upload_abi_dills.sh [SDK] Adds documentation about updating ABI_VERSION 2020-05-07 12:33:37 +00:00
utils.py Add an --os=fuchsia option to build.py: 2020-06-15 20:05:16 +00:00
validate_test_matrix.dart [presubmit] Add presubmit check for valid test matrix 2020-05-12 05:48:22 +00:00
VERSION [vm/ffi] Convert Objects to Dart_Handles in FFI calls 2020-06-12 11:14:22 +00:00
write_dartdoc_options_file.py Mass format python with yapf 2019-08-05 20:34:31 +00:00
write_revision_file.py Mass format python with yapf 2019-08-05 20:34:31 +00:00
write_version_file.py Mass format python with yapf 2019-08-05 20:34:31 +00:00
yaml2json.dart Mention that libraries.json is generated. 2017-11-01 12:55:42 +00:00
yaml2json.py Mass format python with yapf 2019-08-05 20:34:31 +00:00