You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The immutable bit is mostly of function of the class, so just initializing it like we do for normal allocation should be enough. (There are edge cases with immutable type data, but I think these can't occur at compile/const-time and end up in an app snapshot.) I don't think we need separate clusters until we starting having some instances of a class be immutable and others not.
Currently the immutable bit is a of function of the class. If we start having some instances of a class be immutable and others not, we will need separate clusters like we do for the canonical bit.
TEST=vm/dart/snapshot_immutable_bit_test
Bug: #55136
Cq-Include-Trybots: luci.dart.try:vm-appjit-linux-debug-x64-try
Change-Id: I073f28cabca8293b766aa7c0b224934a62bf9cb4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/356280
Reviewed-by: Daco Harkes <[email protected]>
Commit-Queue: Ryan Macnak <[email protected]>
I believe we don't set the
ImmutableBit
when deserializing from appjit snapshots.sdk/runtime/vm/app_snapshot.cc
Lines 869 to 883 in 0f1addd
This leads to objects being copied instead of being shared on
SendPort.send
.cc @mkustermann
Edit: Can be exercised with https://dart-review.googlesource.com/c/sdk/+/354902/17..18 and
tools/build.py -mdebug create_platform_sdk runtime && tools/test.py -n vm-appjit-linux-debug-x64 lib/isolate/illegal_msg_mirror_test
.The text was updated successfully, but these errors were encountered: