@@ -13085,11 +13085,12 @@ ObjectPtr Field::StaticConstFieldValue() const {
1308513085
1308613086 auto thread = Thread::Current();
1308713087 auto zone = thread->zone();
13088- auto initial_field_table = thread->isolate_group()->initial_field_table();
13088+ auto initial_field_table =
13089+ is_shared() ? thread->isolate_group()->shared_initial_field_table()
13090+ : thread->isolate_group()->initial_field_table();
1308913091
1309013092 // We can safely cache the value of the static const field in the initial
1309113093 // field table.
13092- ASSERT(!is_shared());
1309313094 auto& value = Object::Handle(
1309413095 zone, initial_field_table->At(field_id(), /*concurrent_use=*/true));
1309513096 if (value.ptr() == Object::sentinel().ptr()) {
@@ -13111,9 +13112,10 @@ ObjectPtr Field::StaticConstFieldValue() const {
1311113112void Field::SetStaticConstFieldValue(const Instance& value,
1311213113 bool assert_initializing_store) const {
1311313114 ASSERT(is_static());
13114- ASSERT(!is_shared());
1311513115 auto thread = Thread::Current();
13116- auto initial_field_table = thread->isolate_group()->initial_field_table();
13116+ auto initial_field_table =
13117+ is_shared() ? thread->isolate_group()->shared_initial_field_table()
13118+ : thread->isolate_group()->initial_field_table();
1311713119
1311813120 SafepointWriteRwLocker ml(thread, thread->isolate_group()->program_lock());
1311913121 ASSERT(initial_field_table->At(field_id()) == Object::sentinel().ptr() ||
0 commit comments