Files
sdk/runtime
Vyacheslav Egorov 6c22b1dcf0 [VM, Snapshot] Scrub names when deserializing static closures.
Snapshot writer serializes a tear-off of a static function as
a triple [library-url, class-name, function-name]. However it
does not scrub these names (String::ScrubName can cause an
allocation and subsequently a GC which means it can't be used
when writing snapshot). As a result of this private names
arrive mangled to the receiving isolate, which would fail to
look these names up if its private library keys are different.

This patch fixes sporadic failures that can be caused by this.

Note: even if two isolates start from the very same main URI
libraries in those isolates might end up with different private
keys because private key consists of library-sequence-number
and a URL hash. URL hashes are guaranteed to be stable but
library-sequence-numbers might get out of sync due to
asynchronous loading.
Bug:
Change-Id: I4b39cb20a1713d3e992352c501cf1b9a476779ef
Reviewed-on: https://dart-review.googlesource.com/5721
Reviewed-by: Siva Annamalai <asiva@google.com>
2017-09-14 18:25:18 +00:00
..
2017-09-14 02:43:20 +00:00
2017-08-04 22:19:35 -07:00
2017-08-18 08:51:40 -07:00