DescriptionWhen a snapshot is generated on a 64 bit architecture and then read into a 32 bit architecture, values which are Smi on the 64 bit architecture could potentially be converted to Mint objects, however since Smi values do not have any notion of canonical bits we lose that information when the object becomes a Mint.
Some of these values could be literal values and end up in the VM isolate heap. Later when these values are referenced in a constant list we try to ensure that all the objects in the list are canonical and try to canonicalize them. When these Mint objects are encountered they do not have the canonical bit set and canonicalizing them won't work as the VM heap is read only now. In these cases we clone the object into the isolate and then canonicalize it.
BUG=
R=johnmccutchan@google.com
Committed: https://github.com/dart-lang/sdk/commit/c8549e064e9262d4e68ce48fcc4059f0de184123
Patch Set 1 #
Total comments: 2
Patch Set 2 : code-review #Messages
Total messages: 7 (2 generated)
|