Version 2.14.0-292.0.dev
Merge commit '172e1bee707cf09b019d22e3d4ffa08582a03c44' into 'dev'
diff --git a/DEPS b/DEPS
index b72ee61..3cf9187 100644
--- a/DEPS
+++ b/DEPS
@@ -146,7 +146,7 @@
"resource_rev": "6b79867d0becf5395e5819a75720963b8298e9a7",
"root_certificates_rev": "692f6d6488af68e0121317a9c2c9eb393eb0ee50",
"rust_revision": "b7856f695d65a8ebc846754f97d15814bcb1c244",
- "shelf_static_rev": "fa30419055279a00c9e428439b1abe362d18f25d",
+ "shelf_static_rev": "fb6b7d0ee4ad936a84e503ae6b3703cc99e61d52",
"shelf_packages_handler_rev": "78302e67c035047e6348e692b0c1182131f0fe35",
"shelf_proxy_tag": "v1.0.0",
"shelf_rev": "46483f896cc4308ee3d8e997030ae799b72aa16a",
diff --git a/pkg/analysis_server/lib/src/edit/edit_domain.dart b/pkg/analysis_server/lib/src/edit/edit_domain.dart
index 43b4268..0e5ba49 100644
--- a/pkg/analysis_server/lib/src/edit/edit_domain.dart
+++ b/pkg/analysis_server/lib/src/edit/edit_domain.dart
@@ -546,7 +546,8 @@
Future<List<AnalysisErrorFixes>> _computeAnalysisOptionsFixes(
String file, int offset) async {
var errorFixesList = <AnalysisErrorFixes>[];
- var optionsFile = server.resourceProvider.getFile(file);
+ var resourceProvider = server.resourceProvider;
+ var optionsFile = resourceProvider.getFile(file);
var content = _safelyRead(optionsFile);
if (content == null) {
return errorFixesList;
@@ -568,7 +569,8 @@
return errorFixesList;
}
for (var error in errors) {
- var generator = AnalysisOptionsFixGenerator(error, content, options);
+ var generator = AnalysisOptionsFixGenerator(
+ resourceProvider, error, content, options);
var fixes = await generator.computeFixes();
if (fixes.isNotEmpty) {
fixes.sort(Fix.SORT_BY_RELEVANCE);
@@ -690,7 +692,8 @@
Future<List<AnalysisErrorFixes>> _computePubspecFixes(
String file, int offset) async {
var errorFixesList = <AnalysisErrorFixes>[];
- var pubspecFile = server.resourceProvider.getFile(file);
+ var resourceProvider = server.resourceProvider;
+ var pubspecFile = resourceProvider.getFile(file);
var content = _safelyRead(pubspecFile);
if (content == null) {
return errorFixesList;
@@ -710,12 +713,12 @@
yamlContent = YamlMap();
}
var validator =
- PubspecValidator(server.resourceProvider, pubspecFile.createSource());
+ PubspecValidator(resourceProvider, pubspecFile.createSource());
var session = driver.currentSession;
var errors = validator.validate(yamlContent.nodes);
for (var error in errors) {
- var generator = PubspecFixGenerator(
- server.resourceProvider, error, content, document);
+ var generator =
+ PubspecFixGenerator(resourceProvider, error, content, document);
var fixes = await generator.computeFixes();
if (fixes.isNotEmpty) {
fixes.sort(Fix.SORT_BY_RELEVANCE);
diff --git a/pkg/analysis_server/lib/src/services/correction/change_workspace.dart b/pkg/analysis_server/lib/src/services/correction/change_workspace.dart
index c206924..a0af0ab 100644
--- a/pkg/analysis_server/lib/src/services/correction/change_workspace.dart
+++ b/pkg/analysis_server/lib/src/services/correction/change_workspace.dart
@@ -3,6 +3,7 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:analyzer/dart/analysis/session.dart';
+import 'package:analyzer/file_system/file_system.dart';
import 'package:analyzer_plugin/utilities/change_builder/change_workspace.dart';
/// [ChangeWorkspace] based on sessions.
@@ -12,6 +13,9 @@
DartChangeWorkspace(this.sessions);
@override
+ ResourceProvider get resourceProvider => sessions.first.resourceProvider;
+
+ @override
bool containsFile(String path) {
for (var session in sessions) {
if (session.analysisContext.contextRoot.isAnalyzed(path)) {
diff --git a/pkg/analysis_server/lib/src/services/correction/fix/analysis_options/fix_generator.dart b/pkg/analysis_server/lib/src/services/correction/fix/analysis_options/fix_generator.dart
index 87ef1fa..d3b6ac3 100644
--- a/pkg/analysis_server/lib/src/services/correction/fix/analysis_options/fix_generator.dart
+++ b/pkg/analysis_server/lib/src/services/correction/fix/analysis_options/fix_generator.dart
@@ -10,6 +10,7 @@
import 'package:analysis_server/src/utilities/yaml_node_locator.dart';
import 'package:analyzer/dart/analysis/session.dart';
import 'package:analyzer/error/error.dart';
+import 'package:analyzer/file_system/file_system.dart';
import 'package:analyzer/src/analysis_options/error/option_codes.dart';
import 'package:analyzer/src/generated/java_core.dart';
import 'package:analyzer/src/generated/source.dart';
@@ -21,6 +22,9 @@
/// The generator used to generate fixes in analysis options files.
class AnalysisOptionsFixGenerator {
+ /// The resource provider used to access the file system.
+ final ResourceProvider resourceProvider;
+
final AnalysisError error;
final int errorOffset;
@@ -35,7 +39,8 @@
final List<Fix> fixes = <Fix>[];
- AnalysisOptionsFixGenerator(this.error, this.content, this.options)
+ AnalysisOptionsFixGenerator(
+ this.resourceProvider, this.error, this.content, this.options)
: errorOffset = error.offset,
errorLength = error.length,
lineInfo = LineInfo.fromContent(content);
@@ -169,7 +174,7 @@
deletionRange ??=
_lines(nodeToDelete.span.start.offset, nodeToDelete.span.end.offset);
var builder = ChangeBuilder(
- workspace: _NonDartChangeWorkspace(),
+ workspace: _NonDartChangeWorkspace(resourceProvider),
);
final deletionRange_final = deletionRange;
@@ -198,6 +203,11 @@
class _NonDartChangeWorkspace implements ChangeWorkspace {
@override
+ ResourceProvider resourceProvider;
+
+ _NonDartChangeWorkspace(this.resourceProvider);
+
+ @override
bool containsFile(String path) {
return true;
}
diff --git a/pkg/analysis_server/lib/src/services/correction/fix/pubspec/fix_generator.dart b/pkg/analysis_server/lib/src/services/correction/fix/pubspec/fix_generator.dart
index 1a034ce..179e35a 100644
--- a/pkg/analysis_server/lib/src/services/correction/fix/pubspec/fix_generator.dart
+++ b/pkg/analysis_server/lib/src/services/correction/fix/pubspec/fix_generator.dart
@@ -2,8 +2,6 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-import 'dart:math' as math;
-
import 'package:_fe_analyzer_shared/src/scanner/characters.dart';
import 'package:analysis_server/plugin/edit/fix/fix_core.dart';
import 'package:analysis_server/src/services/correction/fix/pubspec/fix_kind.dart';
@@ -138,8 +136,8 @@
Future<void> _addNameEntry() async {
var context = resourceProvider.pathContext;
var packageName = _identifierFrom(context.basename(context.dirname(file)));
- var builder =
- ChangeBuilder(workspace: _NonDartChangeWorkspace(), eol: endOfLine);
+ var builder = ChangeBuilder(
+ workspace: _NonDartChangeWorkspace(resourceProvider), eol: endOfLine);
var firstOffset = _initialOffset(document.contents);
if (firstOffset < 0) {
// The document contains a list, and we don't support converting it to a
@@ -185,17 +183,6 @@
identical(next, $_);
}
- // ignore: unused_element
- SourceRange _lines(int start, int end) {
- var startLocation = lineInfo.getLocation(start);
- var startOffset = lineInfo.getOffsetOfLine(startLocation.lineNumber - 1);
- var endLocation = lineInfo.getLocation(end);
- var endOffset = lineInfo.getOffsetOfLine(
- math.min(endLocation.lineNumber, lineInfo.lineCount - 1));
- return SourceRange(startOffset, endOffset - startOffset);
- }
-
- // ignore: unused_element
int _offsetOfFirstKey(YamlMap map) {
var firstOffset = -1;
for (var key in map.nodeMap.keys) {
@@ -213,6 +200,11 @@
class _NonDartChangeWorkspace implements ChangeWorkspace {
@override
+ ResourceProvider resourceProvider;
+
+ _NonDartChangeWorkspace(this.resourceProvider);
+
+ @override
bool containsFile(String path) {
return true;
}
diff --git a/pkg/analysis_server/test/src/services/correction/fix/analysis_options/test_support.dart b/pkg/analysis_server/test/src/services/correction/fix/analysis_options/test_support.dart
index 6090ba5..058fc31 100644
--- a/pkg/analysis_server/test/src/services/correction/fix/analysis_options/test_support.dart
+++ b/pkg/analysis_server/test/src/services/correction/fix/analysis_options/test_support.dart
@@ -44,7 +44,8 @@
expect(errors, hasLength(1));
var error = errors[0];
var options = _parseYaml(content);
- var generator = AnalysisOptionsFixGenerator(error, content, options);
+ var generator =
+ AnalysisOptionsFixGenerator(resourceProvider, error, content, options);
return generator.computeFixes();
}
diff --git a/pkg/analyzer_plugin/lib/src/utilities/change_builder/change_builder_core.dart b/pkg/analyzer_plugin/lib/src/utilities/change_builder/change_builder_core.dart
index 15c9c4f..ab273d2 100644
--- a/pkg/analyzer_plugin/lib/src/utilities/change_builder/change_builder_core.dart
+++ b/pkg/analyzer_plugin/lib/src/utilities/change_builder/change_builder_core.dart
@@ -8,6 +8,7 @@
import 'package:analyzer/dart/analysis/results.dart';
import 'package:analyzer/dart/analysis/session.dart';
import 'package:analyzer/exception/exception.dart';
+import 'package:analyzer/file_system/file_system.dart';
import 'package:analyzer/src/generated/source.dart';
import 'package:analyzer_plugin/protocol/protocol_common.dart';
import 'package:analyzer_plugin/src/utilities/change_builder/change_builder_dart.dart';
@@ -604,6 +605,9 @@
_SingleSessionWorkspace(this.session);
@override
+ ResourceProvider get resourceProvider => session.resourceProvider;
+
+ @override
bool? containsFile(String path) {
var analysisContext = session.analysisContext;
return analysisContext.contextRoot.isAnalyzed(path);
diff --git a/pkg/analyzer_plugin/lib/utilities/change_builder/change_workspace.dart b/pkg/analyzer_plugin/lib/utilities/change_builder/change_workspace.dart
index c89a52c..4a3bb9f 100644
--- a/pkg/analyzer_plugin/lib/utilities/change_builder/change_workspace.dart
+++ b/pkg/analyzer_plugin/lib/utilities/change_builder/change_workspace.dart
@@ -3,9 +3,13 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:analyzer/dart/analysis/session.dart';
+import 'package:analyzer/file_system/file_system.dart';
/// Information about the workspace in which change builders operate.
abstract class ChangeWorkspace {
+ /// Return the resource provider used to access the file system.
+ ResourceProvider get resourceProvider;
+
/// Return `true` if the file with the given [path] is in a context root.
bool? containsFile(String path);
diff --git a/pkg/compiler/lib/src/inferrer/builder_kernel.dart b/pkg/compiler/lib/src/inferrer/builder_kernel.dart
index 3a35294..6c90fb2 100644
--- a/pkg/compiler/lib/src/inferrer/builder_kernel.dart
+++ b/pkg/compiler/lib/src/inferrer/builder_kernel.dart
@@ -1548,7 +1548,9 @@
Selector selector = _elementMap.getSelector(node);
if (_closedWorld.commonElements.isForeign(member)) {
return handleForeignInvoke(node, member, arguments, selector);
- } else if (_closedWorld.commonElements.isCreateSentinel(member)) {
+ } else if (!_options.useLegacySubtyping &&
+ _closedWorld.commonElements.isCreateSentinel(member)) {
+ // TODO(fishythefish): Support this for --no-sound-null-safety too.
// `T createSentinel<T>()` ostensibly returns a `T` based on its static
// type. However, we need to handle this specially for a couple of
// reasons:
diff --git a/pkg/dartdev/test/analytics_test.dart b/pkg/dartdev/test/analytics_test.dart
index 304fc6a..83050f7 100644
--- a/pkg/dartdev/test/analytics_test.dart
+++ b/pkg/dartdev/test/analytics_test.dart
@@ -161,7 +161,7 @@
test('format', () {
final p = project(logAnalytics: true);
- final result = p.runSync(['format', '-l80']);
+ final result = p.runSync(['format', '-l80', '.']);
expect(extractAnalytics(result), [
{
'hitType': 'screenView',
diff --git a/runtime/vm/class_finalizer.cc b/runtime/vm/class_finalizer.cc
index 88ccfad..d296cc7cb 100644
--- a/runtime/vm/class_finalizer.cc
+++ b/runtime/vm/class_finalizer.cc
@@ -1453,7 +1453,7 @@
}
ASSERT(next_new_cid == num_cids);
RemapClassIds(old_to_new_cid.get());
- RehashTypes(); // Types use cid's as part of their hashes.
+ RehashTypes(); // Types use cid's as part of their hashes.
IG->RehashConstants(); // Const objects use cid's as part of their hashes.
// Ensure any newly spawned isolate will apply this permutation map right
diff --git a/runtime/vm/compiler/backend/il.cc b/runtime/vm/compiler/backend/il.cc
index ddb8cf9..45a70dc 100644
--- a/runtime/vm/compiler/backend/il.cc
+++ b/runtime/vm/compiler/backend/il.cc
@@ -2896,7 +2896,7 @@
}
switch (call->function().recognized_kind()) {
case MethodRecognizer::kByteDataFactory:
- case MethodRecognizer::kLinkedHashMap_getData:
+ case MethodRecognizer::kLinkedHashBase_getData:
return flow_graph->constant_null();
default:
break;
@@ -2917,7 +2917,7 @@
break;
}
- case Slot::Kind::kLinkedHashMap_data:
+ case Slot::Kind::kLinkedHashBase_data:
return flow_graph->constant_null();
default:
@@ -6502,14 +6502,11 @@
// Find the native location where this individual definition should be
// moved to.
const auto& def_target =
- arg_target.payload_type().IsPrimitive()
- ? arg_target
- : arg_target.IsMultiple()
- ? *arg_target.AsMultiple().locations()[i]
- : arg_target.IsPointerToMemory()
- ? arg_target.AsPointerToMemory().pointer_location()
- : /*arg_target.IsStack()*/ arg_target.Split(
- zone_, num_defs, i);
+ arg_target.payload_type().IsPrimitive() ? arg_target
+ : arg_target.IsMultiple() ? *arg_target.AsMultiple().locations()[i]
+ : arg_target.IsPointerToMemory()
+ ? arg_target.AsPointerToMemory().pointer_location()
+ : /*arg_target.IsStack()*/ arg_target.Split(zone_, num_defs, i);
ConstantTemporaryAllocator temp_alloc(temp);
if (origin.IsConstant()) {
diff --git a/runtime/vm/compiler/backend/range_analysis.cc b/runtime/vm/compiler/backend/range_analysis.cc
index 76ab69a..5eec5a4 100644
--- a/runtime/vm/compiler/backend/range_analysis.cc
+++ b/runtime/vm/compiler/backend/range_analysis.cc
@@ -2788,8 +2788,8 @@
Definition::InferRange(analysis, range);
break;
- case Slot::Kind::kLinkedHashMap_index:
- case Slot::Kind::kLinkedHashMap_data:
+ case Slot::Kind::kLinkedHashBase_index:
+ case Slot::Kind::kLinkedHashBase_data:
case Slot::Kind::kGrowableObjectArray_data:
case Slot::Kind::kContext_parent:
case Slot::Kind::kTypeArguments:
@@ -2834,9 +2834,9 @@
break;
case Slot::Kind::kClosure_hash:
- case Slot::Kind::kLinkedHashMap_hash_mask:
- case Slot::Kind::kLinkedHashMap_used_data:
- case Slot::Kind::kLinkedHashMap_deleted_keys:
+ case Slot::Kind::kLinkedHashBase_hash_mask:
+ case Slot::Kind::kLinkedHashBase_used_data:
+ case Slot::Kind::kLinkedHashBase_deleted_keys:
*range = Range(RangeBoundary::FromConstant(0), RangeBoundary::MaxSmi());
break;
diff --git a/runtime/vm/compiler/backend/slot.cc b/runtime/vm/compiler/backend/slot.cc
index f1821ce..cd8e80c 100644
--- a/runtime/vm/compiler/backend/slot.cc
+++ b/runtime/vm/compiler/backend/slot.cc
@@ -200,11 +200,11 @@
case Slot::Kind::k##Class##_##Field:
UNBOXED_NATIVE_SLOTS_LIST(UNBOXED_NATIVE_SLOT_CASE)
#undef UNBOXED_NATIVE_SLOT_CASE
- case Slot::Kind::kLinkedHashMap_index:
- case Slot::Kind::kLinkedHashMap_data:
- case Slot::Kind::kLinkedHashMap_hash_mask:
- case Slot::Kind::kLinkedHashMap_used_data:
- case Slot::Kind::kLinkedHashMap_deleted_keys:
+ case Slot::Kind::kLinkedHashBase_index:
+ case Slot::Kind::kLinkedHashBase_data:
+ case Slot::Kind::kLinkedHashBase_hash_mask:
+ case Slot::Kind::kLinkedHashBase_used_data:
+ case Slot::Kind::kLinkedHashBase_deleted_keys:
case Slot::Kind::kArgumentsDescriptor_type_args_len:
case Slot::Kind::kArgumentsDescriptor_positional_count:
case Slot::Kind::kArgumentsDescriptor_count:
diff --git a/runtime/vm/compiler/backend/slot.h b/runtime/vm/compiler/backend/slot.h
index 2198ba7..866e399 100644
--- a/runtime/vm/compiler/backend/slot.h
+++ b/runtime/vm/compiler/backend/slot.h
@@ -95,11 +95,11 @@
V(TypedDataView, UntaggedTypedDataView, offset_in_bytes, Smi, FINAL) \
V(TypedDataView, UntaggedTypedDataView, data, Dynamic, FINAL) \
V(String, UntaggedString, length, Smi, FINAL) \
- V(LinkedHashMap, UntaggedLinkedHashMap, index, TypedDataUint32Array, VAR) \
- V(LinkedHashMap, UntaggedLinkedHashMap, data, Array, VAR) \
- V(LinkedHashMap, UntaggedLinkedHashMap, hash_mask, Smi, VAR) \
- V(LinkedHashMap, UntaggedLinkedHashMap, used_data, Smi, VAR) \
- V(LinkedHashMap, UntaggedLinkedHashMap, deleted_keys, Smi, VAR) \
+ V(LinkedHashBase, UntaggedLinkedHashBase, index, TypedDataUint32Array, VAR) \
+ V(LinkedHashBase, UntaggedLinkedHashBase, data, Array, VAR) \
+ V(LinkedHashBase, UntaggedLinkedHashBase, hash_mask, Smi, VAR) \
+ V(LinkedHashBase, UntaggedLinkedHashBase, used_data, Smi, VAR) \
+ V(LinkedHashBase, UntaggedLinkedHashBase, deleted_keys, Smi, VAR) \
V(ArgumentsDescriptor, UntaggedArray, type_args_len, Smi, FINAL) \
V(ArgumentsDescriptor, UntaggedArray, positional_count, Smi, FINAL) \
V(ArgumentsDescriptor, UntaggedArray, count, Smi, FINAL) \
@@ -338,7 +338,7 @@
static const Slot& GetNativeSlot(Kind kind);
const Kind kind_;
- const int8_t flags_; // is_immutable, is_nullable
+ const int8_t flags_; // is_immutable, is_nullable
const ClassIdTagType cid_; // Concrete cid of a value or kDynamicCid.
const intptr_t offset_in_bytes_;
diff --git a/runtime/vm/compiler/frontend/kernel_to_il.cc b/runtime/vm/compiler/frontend/kernel_to_il.cc
index dc96c4e..6968ff1 100644
--- a/runtime/vm/compiler/frontend/kernel_to_il.cc
+++ b/runtime/vm/compiler/frontend/kernel_to_il.cc
@@ -871,16 +871,16 @@
case MethodRecognizer::kListFactory:
case MethodRecognizer::kObjectArrayAllocate:
case MethodRecognizer::kCopyRangeFromUint8ListToOneByteString:
- case MethodRecognizer::kLinkedHashMap_getIndex:
- case MethodRecognizer::kLinkedHashMap_setIndex:
- case MethodRecognizer::kLinkedHashMap_getData:
- case MethodRecognizer::kLinkedHashMap_setData:
- case MethodRecognizer::kLinkedHashMap_getHashMask:
- case MethodRecognizer::kLinkedHashMap_setHashMask:
- case MethodRecognizer::kLinkedHashMap_getUsedData:
- case MethodRecognizer::kLinkedHashMap_setUsedData:
- case MethodRecognizer::kLinkedHashMap_getDeletedKeys:
- case MethodRecognizer::kLinkedHashMap_setDeletedKeys:
+ case MethodRecognizer::kLinkedHashBase_getIndex:
+ case MethodRecognizer::kLinkedHashBase_setIndex:
+ case MethodRecognizer::kLinkedHashBase_getData:
+ case MethodRecognizer::kLinkedHashBase_setData:
+ case MethodRecognizer::kLinkedHashBase_getHashMask:
+ case MethodRecognizer::kLinkedHashBase_setHashMask:
+ case MethodRecognizer::kLinkedHashBase_getUsedData:
+ case MethodRecognizer::kLinkedHashBase_setUsedData:
+ case MethodRecognizer::kLinkedHashBase_getDeletedKeys:
+ case MethodRecognizer::kLinkedHashBase_setDeletedKeys:
case MethodRecognizer::kWeakProperty_getKey:
case MethodRecognizer::kWeakProperty_setKey:
case MethodRecognizer::kWeakProperty_getValue:
@@ -1165,68 +1165,68 @@
body += MemoryCopy(kTypedDataUint8ArrayCid, kOneByteStringCid);
body += NullConstant();
break;
- case MethodRecognizer::kLinkedHashMap_getIndex:
+ case MethodRecognizer::kLinkedHashBase_getIndex:
ASSERT(function.NumParameters() == 1);
body += LoadLocal(parsed_function_->RawParameterVariable(0));
- body += LoadNativeField(Slot::LinkedHashMap_index());
+ body += LoadNativeField(Slot::LinkedHashBase_index());
break;
- case MethodRecognizer::kLinkedHashMap_setIndex:
+ case MethodRecognizer::kLinkedHashBase_setIndex:
ASSERT(function.NumParameters() == 2);
body += LoadLocal(parsed_function_->RawParameterVariable(0));
body += LoadLocal(parsed_function_->RawParameterVariable(1));
- body += StoreNativeField(Slot::LinkedHashMap_index());
+ body += StoreNativeField(Slot::LinkedHashBase_index());
body += NullConstant();
break;
- case MethodRecognizer::kLinkedHashMap_getData:
+ case MethodRecognizer::kLinkedHashBase_getData:
ASSERT(function.NumParameters() == 1);
body += LoadLocal(parsed_function_->RawParameterVariable(0));
- body += LoadNativeField(Slot::LinkedHashMap_data());
+ body += LoadNativeField(Slot::LinkedHashBase_data());
break;
- case MethodRecognizer::kLinkedHashMap_setData:
+ case MethodRecognizer::kLinkedHashBase_setData:
ASSERT(function.NumParameters() == 2);
body += LoadLocal(parsed_function_->RawParameterVariable(0));
body += LoadLocal(parsed_function_->RawParameterVariable(1));
- body += StoreNativeField(Slot::LinkedHashMap_data());
+ body += StoreNativeField(Slot::LinkedHashBase_data());
body += NullConstant();
break;
- case MethodRecognizer::kLinkedHashMap_getHashMask:
+ case MethodRecognizer::kLinkedHashBase_getHashMask:
ASSERT(function.NumParameters() == 1);
body += LoadLocal(parsed_function_->RawParameterVariable(0));
- body += LoadNativeField(Slot::LinkedHashMap_hash_mask());
+ body += LoadNativeField(Slot::LinkedHashBase_hash_mask());
break;
- case MethodRecognizer::kLinkedHashMap_setHashMask:
+ case MethodRecognizer::kLinkedHashBase_setHashMask:
ASSERT(function.NumParameters() == 2);
body += LoadLocal(parsed_function_->RawParameterVariable(0));
body += LoadLocal(parsed_function_->RawParameterVariable(1));
- body += StoreNativeField(Slot::LinkedHashMap_hash_mask(),
+ body += StoreNativeField(Slot::LinkedHashBase_hash_mask(),
StoreInstanceFieldInstr::Kind::kOther,
kNoStoreBarrier);
body += NullConstant();
break;
- case MethodRecognizer::kLinkedHashMap_getUsedData:
+ case MethodRecognizer::kLinkedHashBase_getUsedData:
ASSERT(function.NumParameters() == 1);
body += LoadLocal(parsed_function_->RawParameterVariable(0));
- body += LoadNativeField(Slot::LinkedHashMap_used_data());
+ body += LoadNativeField(Slot::LinkedHashBase_used_data());
break;
- case MethodRecognizer::kLinkedHashMap_setUsedData:
+ case MethodRecognizer::kLinkedHashBase_setUsedData:
ASSERT(function.NumParameters() == 2);
body += LoadLocal(parsed_function_->RawParameterVariable(0));
body += LoadLocal(parsed_function_->RawParameterVariable(1));
- body += StoreNativeField(Slot::LinkedHashMap_used_data(),
+ body += StoreNativeField(Slot::LinkedHashBase_used_data(),
StoreInstanceFieldInstr::Kind::kOther,
kNoStoreBarrier);
body += NullConstant();
break;
- case MethodRecognizer::kLinkedHashMap_getDeletedKeys:
+ case MethodRecognizer::kLinkedHashBase_getDeletedKeys:
ASSERT(function.NumParameters() == 1);
body += LoadLocal(parsed_function_->RawParameterVariable(0));
- body += LoadNativeField(Slot::LinkedHashMap_deleted_keys());
+ body += LoadNativeField(Slot::LinkedHashBase_deleted_keys());
break;
- case MethodRecognizer::kLinkedHashMap_setDeletedKeys:
+ case MethodRecognizer::kLinkedHashBase_setDeletedKeys:
ASSERT(function.NumParameters() == 2);
body += LoadLocal(parsed_function_->RawParameterVariable(0));
body += LoadLocal(parsed_function_->RawParameterVariable(1));
- body += StoreNativeField(Slot::LinkedHashMap_deleted_keys(),
+ body += StoreNativeField(Slot::LinkedHashBase_deleted_keys(),
StoreInstanceFieldInstr::Kind::kOther,
kNoStoreBarrier);
body += NullConstant();
@@ -2607,7 +2607,7 @@
TargetEntryInstr* is_covariant;
loop_test_flag += BranchIfEqual(&is_noncovariant, &is_covariant);
- Fragment(is_covariant) + Goto(next); // Continue if covariant.
+ Fragment(is_covariant) + Goto(next); // Continue if covariant.
Fragment(is_noncovariant) + Goto(check); // Check type if non-covariant.
Fragment loop_prep_type_param(check);
diff --git a/runtime/vm/compiler/recognized_methods_list.h b/runtime/vm/compiler/recognized_methods_list.h
index 3810986..f45e224 100644
--- a/runtime/vm/compiler/recognized_methods_list.h
+++ b/runtime/vm/compiler/recognized_methods_list.h
@@ -148,16 +148,16 @@
V(_Int32x4, _withFlagY, Int32x4WithFlagY, 0xa8cf9ba6) \
V(_Int32x4, _withFlagZ, Int32x4WithFlagZ, 0xa8058854) \
V(_Int32x4, _withFlagW, Int32x4WithFlagW, 0xb333f958) \
- V(_HashVMBase, get:_index, LinkedHashMap_getIndex, 0x882671dc) \
- V(_HashVMBase, set:_index, LinkedHashMap_setIndex, 0xa2be9418) \
- V(_HashVMBase, get:_data, LinkedHashMap_getData, 0x780e14ad) \
- V(_HashVMBase, set:_data, LinkedHashMap_setData, 0xb6a5c369) \
- V(_HashVMBase, get:_usedData, LinkedHashMap_getUsedData, 0x470893ed) \
- V(_HashVMBase, set:_usedData, LinkedHashMap_setUsedData, 0xb3c887a9) \
- V(_HashVMBase, get:_hashMask, LinkedHashMap_getHashMask, 0x4f0ec79c) \
- V(_HashVMBase, set:_hashMask, LinkedHashMap_setHashMask, 0xbbcebb58) \
- V(_HashVMBase, get:_deletedKeys, LinkedHashMap_getDeletedKeys, 0x510dc4a0) \
- V(_HashVMBase, set:_deletedKeys, LinkedHashMap_setDeletedKeys, 0xbdcdb85c) \
+ V(_HashVMBase, get:_index, LinkedHashBase_getIndex, 0x882671dc) \
+ V(_HashVMBase, set:_index, LinkedHashBase_setIndex, 0xa2be9418) \
+ V(_HashVMBase, get:_data, LinkedHashBase_getData, 0x780e14ad) \
+ V(_HashVMBase, set:_data, LinkedHashBase_setData, 0xb6a5c369) \
+ V(_HashVMBase, get:_usedData, LinkedHashBase_getUsedData, 0x470893ed) \
+ V(_HashVMBase, set:_usedData, LinkedHashBase_setUsedData, 0xb3c887a9) \
+ V(_HashVMBase, get:_hashMask, LinkedHashBase_getHashMask, 0x4f0ec79c) \
+ V(_HashVMBase, set:_hashMask, LinkedHashBase_setHashMask, 0xbbcebb58) \
+ V(_HashVMBase, get:_deletedKeys, LinkedHashBase_getDeletedKeys, 0x510dc4a0) \
+ V(_HashVMBase, set:_deletedKeys, LinkedHashBase_setDeletedKeys, 0xbdcdb85c) \
V(_WeakProperty, get:key, WeakProperty_getKey, 0xde00e462) \
V(_WeakProperty, set:key, WeakProperty_setKey, 0x963a095f) \
V(_WeakProperty, get:value, WeakProperty_getValue, 0xd2f28aae) \
diff --git a/runtime/vm/compiler/runtime_api.h b/runtime/vm/compiler/runtime_api.h
index 9af2bbf..fb22d3b 100644
--- a/runtime/vm/compiler/runtime_api.h
+++ b/runtime/vm/compiler/runtime_api.h
@@ -634,7 +634,7 @@
static word NextFieldOffset();
};
-class LinkedHashMap : public AllStatic {
+class LinkedHashBase : public AllStatic {
public:
static word index_offset();
static word data_offset();
@@ -643,6 +643,10 @@
static word deleted_keys_offset();
static word type_arguments_offset();
static word InstanceSize();
+};
+
+class LinkedHashMap : public LinkedHashBase {
+ public:
static word NextFieldOffset();
};
diff --git a/runtime/vm/compiler/runtime_offsets_extracted.h b/runtime/vm/compiler/runtime_offsets_extracted.h
index ccb1925..b57c17d 100644
--- a/runtime/vm/compiler/runtime_offsets_extracted.h
+++ b/runtime/vm/compiler/runtime_offsets_extracted.h
@@ -195,15 +195,15 @@
IsolateGroup_cached_class_table_table_offset = 16;
static constexpr dart::compiler::target::word Isolate_single_step_offset = 36;
static constexpr dart::compiler::target::word Isolate_user_tag_offset = 16;
-static constexpr dart::compiler::target::word LinkedHashMap_data_offset = 16;
+static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 16;
static constexpr dart::compiler::target::word
- LinkedHashMap_deleted_keys_offset = 24;
-static constexpr dart::compiler::target::word LinkedHashMap_hash_mask_offset =
+ LinkedHashBase_deleted_keys_offset = 24;
+static constexpr dart::compiler::target::word LinkedHashBase_hash_mask_offset =
12;
-static constexpr dart::compiler::target::word LinkedHashMap_index_offset = 8;
+static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 8;
static constexpr dart::compiler::target::word
- LinkedHashMap_type_arguments_offset = 4;
-static constexpr dart::compiler::target::word LinkedHashMap_used_data_offset =
+ LinkedHashBase_type_arguments_offset = 4;
+static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
20;
static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0;
static constexpr dart::compiler::target::word
@@ -513,7 +513,7 @@
static constexpr dart::compiler::target::word LanguageError_InstanceSize = 28;
static constexpr dart::compiler::target::word Library_InstanceSize = 88;
static constexpr dart::compiler::target::word LibraryPrefix_InstanceSize = 20;
-static constexpr dart::compiler::target::word LinkedHashMap_InstanceSize = 28;
+static constexpr dart::compiler::target::word LinkedHashBase_InstanceSize = 28;
static constexpr dart::compiler::target::word MegamorphicCache_InstanceSize =
24;
static constexpr dart::compiler::target::word Mint_InstanceSize = 16;
@@ -737,15 +737,15 @@
IsolateGroup_cached_class_table_table_offset = 32;
static constexpr dart::compiler::target::word Isolate_single_step_offset = 72;
static constexpr dart::compiler::target::word Isolate_user_tag_offset = 32;
-static constexpr dart::compiler::target::word LinkedHashMap_data_offset = 32;
+static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 32;
static constexpr dart::compiler::target::word
- LinkedHashMap_deleted_keys_offset = 48;
-static constexpr dart::compiler::target::word LinkedHashMap_hash_mask_offset =
+ LinkedHashBase_deleted_keys_offset = 48;
+static constexpr dart::compiler::target::word LinkedHashBase_hash_mask_offset =
24;
-static constexpr dart::compiler::target::word LinkedHashMap_index_offset = 16;
+static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 16;
static constexpr dart::compiler::target::word
- LinkedHashMap_type_arguments_offset = 8;
-static constexpr dart::compiler::target::word LinkedHashMap_used_data_offset =
+ LinkedHashBase_type_arguments_offset = 8;
+static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
40;
static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0;
static constexpr dart::compiler::target::word
@@ -1061,7 +1061,7 @@
static constexpr dart::compiler::target::word LanguageError_InstanceSize = 48;
static constexpr dart::compiler::target::word Library_InstanceSize = 168;
static constexpr dart::compiler::target::word LibraryPrefix_InstanceSize = 40;
-static constexpr dart::compiler::target::word LinkedHashMap_InstanceSize = 56;
+static constexpr dart::compiler::target::word LinkedHashBase_InstanceSize = 56;
static constexpr dart::compiler::target::word MegamorphicCache_InstanceSize =
48;
static constexpr dart::compiler::target::word Mint_InstanceSize = 16;
@@ -1284,15 +1284,15 @@
IsolateGroup_cached_class_table_table_offset = 16;
static constexpr dart::compiler::target::word Isolate_single_step_offset = 36;
static constexpr dart::compiler::target::word Isolate_user_tag_offset = 16;
-static constexpr dart::compiler::target::word LinkedHashMap_data_offset = 16;
+static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 16;
static constexpr dart::compiler::target::word
- LinkedHashMap_deleted_keys_offset = 24;
-static constexpr dart::compiler::target::word LinkedHashMap_hash_mask_offset =
+ LinkedHashBase_deleted_keys_offset = 24;
+static constexpr dart::compiler::target::word LinkedHashBase_hash_mask_offset =
12;
-static constexpr dart::compiler::target::word LinkedHashMap_index_offset = 8;
+static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 8;
static constexpr dart::compiler::target::word
- LinkedHashMap_type_arguments_offset = 4;
-static constexpr dart::compiler::target::word LinkedHashMap_used_data_offset =
+ LinkedHashBase_type_arguments_offset = 4;
+static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
20;
static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0;
static constexpr dart::compiler::target::word
@@ -1599,7 +1599,7 @@
static constexpr dart::compiler::target::word LanguageError_InstanceSize = 28;
static constexpr dart::compiler::target::word Library_InstanceSize = 88;
static constexpr dart::compiler::target::word LibraryPrefix_InstanceSize = 20;
-static constexpr dart::compiler::target::word LinkedHashMap_InstanceSize = 28;
+static constexpr dart::compiler::target::word LinkedHashBase_InstanceSize = 28;
static constexpr dart::compiler::target::word MegamorphicCache_InstanceSize =
24;
static constexpr dart::compiler::target::word Mint_InstanceSize = 16;
@@ -1823,15 +1823,15 @@
IsolateGroup_cached_class_table_table_offset = 32;
static constexpr dart::compiler::target::word Isolate_single_step_offset = 72;
static constexpr dart::compiler::target::word Isolate_user_tag_offset = 32;
-static constexpr dart::compiler::target::word LinkedHashMap_data_offset = 32;
+static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 32;
static constexpr dart::compiler::target::word
- LinkedHashMap_deleted_keys_offset = 48;
-static constexpr dart::compiler::target::word LinkedHashMap_hash_mask_offset =
+ LinkedHashBase_deleted_keys_offset = 48;
+static constexpr dart::compiler::target::word LinkedHashBase_hash_mask_offset =
24;
-static constexpr dart::compiler::target::word LinkedHashMap_index_offset = 16;
+static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 16;
static constexpr dart::compiler::target::word
- LinkedHashMap_type_arguments_offset = 8;
-static constexpr dart::compiler::target::word LinkedHashMap_used_data_offset =
+ LinkedHashBase_type_arguments_offset = 8;
+static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
40;
static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0;
static constexpr dart::compiler::target::word
@@ -2148,7 +2148,7 @@
static constexpr dart::compiler::target::word LanguageError_InstanceSize = 48;
static constexpr dart::compiler::target::word Library_InstanceSize = 168;
static constexpr dart::compiler::target::word LibraryPrefix_InstanceSize = 40;
-static constexpr dart::compiler::target::word LinkedHashMap_InstanceSize = 56;
+static constexpr dart::compiler::target::word LinkedHashBase_InstanceSize = 56;
static constexpr dart::compiler::target::word MegamorphicCache_InstanceSize =
48;
static constexpr dart::compiler::target::word Mint_InstanceSize = 16;
@@ -2371,15 +2371,15 @@
IsolateGroup_cached_class_table_table_offset = 32;
static constexpr dart::compiler::target::word Isolate_single_step_offset = 72;
static constexpr dart::compiler::target::word Isolate_user_tag_offset = 32;
-static constexpr dart::compiler::target::word LinkedHashMap_data_offset = 20;
+static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 20;
static constexpr dart::compiler::target::word
- LinkedHashMap_deleted_keys_offset = 28;
-static constexpr dart::compiler::target::word LinkedHashMap_hash_mask_offset =
+ LinkedHashBase_deleted_keys_offset = 28;
+static constexpr dart::compiler::target::word LinkedHashBase_hash_mask_offset =
16;
-static constexpr dart::compiler::target::word LinkedHashMap_index_offset = 12;
+static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 12;
static constexpr dart::compiler::target::word
- LinkedHashMap_type_arguments_offset = 8;
-static constexpr dart::compiler::target::word LinkedHashMap_used_data_offset =
+ LinkedHashBase_type_arguments_offset = 8;
+static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
24;
static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0;
static constexpr dart::compiler::target::word
@@ -2695,7 +2695,7 @@
static constexpr dart::compiler::target::word LanguageError_InstanceSize = 32;
static constexpr dart::compiler::target::word Library_InstanceSize = 112;
static constexpr dart::compiler::target::word LibraryPrefix_InstanceSize = 24;
-static constexpr dart::compiler::target::word LinkedHashMap_InstanceSize = 32;
+static constexpr dart::compiler::target::word LinkedHashBase_InstanceSize = 32;
static constexpr dart::compiler::target::word MegamorphicCache_InstanceSize =
48;
static constexpr dart::compiler::target::word Mint_InstanceSize = 16;
@@ -2918,15 +2918,15 @@
IsolateGroup_cached_class_table_table_offset = 32;
static constexpr dart::compiler::target::word Isolate_single_step_offset = 72;
static constexpr dart::compiler::target::word Isolate_user_tag_offset = 32;
-static constexpr dart::compiler::target::word LinkedHashMap_data_offset = 20;
+static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 20;
static constexpr dart::compiler::target::word
- LinkedHashMap_deleted_keys_offset = 28;
-static constexpr dart::compiler::target::word LinkedHashMap_hash_mask_offset =
+ LinkedHashBase_deleted_keys_offset = 28;
+static constexpr dart::compiler::target::word LinkedHashBase_hash_mask_offset =
16;
-static constexpr dart::compiler::target::word LinkedHashMap_index_offset = 12;
+static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 12;
static constexpr dart::compiler::target::word
- LinkedHashMap_type_arguments_offset = 8;
-static constexpr dart::compiler::target::word LinkedHashMap_used_data_offset =
+ LinkedHashBase_type_arguments_offset = 8;
+static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
24;
static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0;
static constexpr dart::compiler::target::word
@@ -3243,7 +3243,7 @@
static constexpr dart::compiler::target::word LanguageError_InstanceSize = 32;
static constexpr dart::compiler::target::word Library_InstanceSize = 112;
static constexpr dart::compiler::target::word LibraryPrefix_InstanceSize = 24;
-static constexpr dart::compiler::target::word LinkedHashMap_InstanceSize = 32;
+static constexpr dart::compiler::target::word LinkedHashBase_InstanceSize = 32;
static constexpr dart::compiler::target::word MegamorphicCache_InstanceSize =
48;
static constexpr dart::compiler::target::word Mint_InstanceSize = 16;
@@ -3462,15 +3462,15 @@
static constexpr dart::compiler::target::word
IsolateGroup_cached_class_table_table_offset = 16;
static constexpr dart::compiler::target::word Isolate_user_tag_offset = 16;
-static constexpr dart::compiler::target::word LinkedHashMap_data_offset = 16;
+static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 16;
static constexpr dart::compiler::target::word
- LinkedHashMap_deleted_keys_offset = 24;
-static constexpr dart::compiler::target::word LinkedHashMap_hash_mask_offset =
+ LinkedHashBase_deleted_keys_offset = 24;
+static constexpr dart::compiler::target::word LinkedHashBase_hash_mask_offset =
12;
-static constexpr dart::compiler::target::word LinkedHashMap_index_offset = 8;
+static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 8;
static constexpr dart::compiler::target::word
- LinkedHashMap_type_arguments_offset = 4;
-static constexpr dart::compiler::target::word LinkedHashMap_used_data_offset =
+ LinkedHashBase_type_arguments_offset = 4;
+static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
20;
static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0;
static constexpr dart::compiler::target::word
@@ -3780,7 +3780,7 @@
static constexpr dart::compiler::target::word LanguageError_InstanceSize = 28;
static constexpr dart::compiler::target::word Library_InstanceSize = 88;
static constexpr dart::compiler::target::word LibraryPrefix_InstanceSize = 20;
-static constexpr dart::compiler::target::word LinkedHashMap_InstanceSize = 28;
+static constexpr dart::compiler::target::word LinkedHashBase_InstanceSize = 28;
static constexpr dart::compiler::target::word MegamorphicCache_InstanceSize =
24;
static constexpr dart::compiler::target::word Mint_InstanceSize = 16;
@@ -3998,15 +3998,15 @@
static constexpr dart::compiler::target::word
IsolateGroup_cached_class_table_table_offset = 32;
static constexpr dart::compiler::target::word Isolate_user_tag_offset = 32;
-static constexpr dart::compiler::target::word LinkedHashMap_data_offset = 32;
+static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 32;
static constexpr dart::compiler::target::word
- LinkedHashMap_deleted_keys_offset = 48;
-static constexpr dart::compiler::target::word LinkedHashMap_hash_mask_offset =
+ LinkedHashBase_deleted_keys_offset = 48;
+static constexpr dart::compiler::target::word LinkedHashBase_hash_mask_offset =
24;
-static constexpr dart::compiler::target::word LinkedHashMap_index_offset = 16;
+static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 16;
static constexpr dart::compiler::target::word
- LinkedHashMap_type_arguments_offset = 8;
-static constexpr dart::compiler::target::word LinkedHashMap_used_data_offset =
+ LinkedHashBase_type_arguments_offset = 8;
+static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
40;
static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0;
static constexpr dart::compiler::target::word
@@ -4322,7 +4322,7 @@
static constexpr dart::compiler::target::word LanguageError_InstanceSize = 48;
static constexpr dart::compiler::target::word Library_InstanceSize = 168;
static constexpr dart::compiler::target::word LibraryPrefix_InstanceSize = 40;
-static constexpr dart::compiler::target::word LinkedHashMap_InstanceSize = 56;
+static constexpr dart::compiler::target::word LinkedHashBase_InstanceSize = 56;
static constexpr dart::compiler::target::word MegamorphicCache_InstanceSize =
48;
static constexpr dart::compiler::target::word Mint_InstanceSize = 16;
@@ -4539,15 +4539,15 @@
static constexpr dart::compiler::target::word
IsolateGroup_cached_class_table_table_offset = 16;
static constexpr dart::compiler::target::word Isolate_user_tag_offset = 16;
-static constexpr dart::compiler::target::word LinkedHashMap_data_offset = 16;
+static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 16;
static constexpr dart::compiler::target::word
- LinkedHashMap_deleted_keys_offset = 24;
-static constexpr dart::compiler::target::word LinkedHashMap_hash_mask_offset =
+ LinkedHashBase_deleted_keys_offset = 24;
+static constexpr dart::compiler::target::word LinkedHashBase_hash_mask_offset =
12;
-static constexpr dart::compiler::target::word LinkedHashMap_index_offset = 8;
+static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 8;
static constexpr dart::compiler::target::word
- LinkedHashMap_type_arguments_offset = 4;
-static constexpr dart::compiler::target::word LinkedHashMap_used_data_offset =
+ LinkedHashBase_type_arguments_offset = 4;
+static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
20;
static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0;
static constexpr dart::compiler::target::word
@@ -4854,7 +4854,7 @@
static constexpr dart::compiler::target::word LanguageError_InstanceSize = 28;
static constexpr dart::compiler::target::word Library_InstanceSize = 88;
static constexpr dart::compiler::target::word LibraryPrefix_InstanceSize = 20;
-static constexpr dart::compiler::target::word LinkedHashMap_InstanceSize = 28;
+static constexpr dart::compiler::target::word LinkedHashBase_InstanceSize = 28;
static constexpr dart::compiler::target::word MegamorphicCache_InstanceSize =
24;
static constexpr dart::compiler::target::word Mint_InstanceSize = 16;
@@ -5072,15 +5072,15 @@
static constexpr dart::compiler::target::word
IsolateGroup_cached_class_table_table_offset = 32;
static constexpr dart::compiler::target::word Isolate_user_tag_offset = 32;
-static constexpr dart::compiler::target::word LinkedHashMap_data_offset = 32;
+static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 32;
static constexpr dart::compiler::target::word
- LinkedHashMap_deleted_keys_offset = 48;
-static constexpr dart::compiler::target::word LinkedHashMap_hash_mask_offset =
+ LinkedHashBase_deleted_keys_offset = 48;
+static constexpr dart::compiler::target::word LinkedHashBase_hash_mask_offset =
24;
-static constexpr dart::compiler::target::word LinkedHashMap_index_offset = 16;
+static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 16;
static constexpr dart::compiler::target::word
- LinkedHashMap_type_arguments_offset = 8;
-static constexpr dart::compiler::target::word LinkedHashMap_used_data_offset =
+ LinkedHashBase_type_arguments_offset = 8;
+static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
40;
static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0;
static constexpr dart::compiler::target::word
@@ -5397,7 +5397,7 @@
static constexpr dart::compiler::target::word LanguageError_InstanceSize = 48;
static constexpr dart::compiler::target::word Library_InstanceSize = 168;
static constexpr dart::compiler::target::word LibraryPrefix_InstanceSize = 40;
-static constexpr dart::compiler::target::word LinkedHashMap_InstanceSize = 56;
+static constexpr dart::compiler::target::word LinkedHashBase_InstanceSize = 56;
static constexpr dart::compiler::target::word MegamorphicCache_InstanceSize =
48;
static constexpr dart::compiler::target::word Mint_InstanceSize = 16;
@@ -5614,15 +5614,15 @@
static constexpr dart::compiler::target::word
IsolateGroup_cached_class_table_table_offset = 32;
static constexpr dart::compiler::target::word Isolate_user_tag_offset = 32;
-static constexpr dart::compiler::target::word LinkedHashMap_data_offset = 20;
+static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 20;
static constexpr dart::compiler::target::word
- LinkedHashMap_deleted_keys_offset = 28;
-static constexpr dart::compiler::target::word LinkedHashMap_hash_mask_offset =
+ LinkedHashBase_deleted_keys_offset = 28;
+static constexpr dart::compiler::target::word LinkedHashBase_hash_mask_offset =
16;
-static constexpr dart::compiler::target::word LinkedHashMap_index_offset = 12;
+static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 12;
static constexpr dart::compiler::target::word
- LinkedHashMap_type_arguments_offset = 8;
-static constexpr dart::compiler::target::word LinkedHashMap_used_data_offset =
+ LinkedHashBase_type_arguments_offset = 8;
+static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
24;
static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0;
static constexpr dart::compiler::target::word
@@ -5938,7 +5938,7 @@
static constexpr dart::compiler::target::word LanguageError_InstanceSize = 32;
static constexpr dart::compiler::target::word Library_InstanceSize = 112;
static constexpr dart::compiler::target::word LibraryPrefix_InstanceSize = 24;
-static constexpr dart::compiler::target::word LinkedHashMap_InstanceSize = 32;
+static constexpr dart::compiler::target::word LinkedHashBase_InstanceSize = 32;
static constexpr dart::compiler::target::word MegamorphicCache_InstanceSize =
48;
static constexpr dart::compiler::target::word Mint_InstanceSize = 16;
@@ -6155,15 +6155,15 @@
static constexpr dart::compiler::target::word
IsolateGroup_cached_class_table_table_offset = 32;
static constexpr dart::compiler::target::word Isolate_user_tag_offset = 32;
-static constexpr dart::compiler::target::word LinkedHashMap_data_offset = 20;
+static constexpr dart::compiler::target::word LinkedHashBase_data_offset = 20;
static constexpr dart::compiler::target::word
- LinkedHashMap_deleted_keys_offset = 28;
-static constexpr dart::compiler::target::word LinkedHashMap_hash_mask_offset =
+ LinkedHashBase_deleted_keys_offset = 28;
+static constexpr dart::compiler::target::word LinkedHashBase_hash_mask_offset =
16;
-static constexpr dart::compiler::target::word LinkedHashMap_index_offset = 12;
+static constexpr dart::compiler::target::word LinkedHashBase_index_offset = 12;
static constexpr dart::compiler::target::word
- LinkedHashMap_type_arguments_offset = 8;
-static constexpr dart::compiler::target::word LinkedHashMap_used_data_offset =
+ LinkedHashBase_type_arguments_offset = 8;
+static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
24;
static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0;
static constexpr dart::compiler::target::word
@@ -6480,7 +6480,7 @@
static constexpr dart::compiler::target::word LanguageError_InstanceSize = 32;
static constexpr dart::compiler::target::word Library_InstanceSize = 112;
static constexpr dart::compiler::target::word LibraryPrefix_InstanceSize = 24;
-static constexpr dart::compiler::target::word LinkedHashMap_InstanceSize = 32;
+static constexpr dart::compiler::target::word LinkedHashBase_InstanceSize = 32;
static constexpr dart::compiler::target::word MegamorphicCache_InstanceSize =
48;
static constexpr dart::compiler::target::word Mint_InstanceSize = 16;
@@ -6722,18 +6722,18 @@
static constexpr dart::compiler::target::word AOT_Isolate_single_step_offset =
36;
static constexpr dart::compiler::target::word AOT_Isolate_user_tag_offset = 16;
-static constexpr dart::compiler::target::word AOT_LinkedHashMap_data_offset =
+static constexpr dart::compiler::target::word AOT_LinkedHashBase_data_offset =
16;
static constexpr dart::compiler::target::word
- AOT_LinkedHashMap_deleted_keys_offset = 24;
+ AOT_LinkedHashBase_deleted_keys_offset = 24;
static constexpr dart::compiler::target::word
- AOT_LinkedHashMap_hash_mask_offset = 12;
-static constexpr dart::compiler::target::word AOT_LinkedHashMap_index_offset =
+ AOT_LinkedHashBase_hash_mask_offset = 12;
+static constexpr dart::compiler::target::word AOT_LinkedHashBase_index_offset =
8;
static constexpr dart::compiler::target::word
- AOT_LinkedHashMap_type_arguments_offset = 4;
+ AOT_LinkedHashBase_type_arguments_offset = 4;
static constexpr dart::compiler::target::word
- AOT_LinkedHashMap_used_data_offset = 20;
+ AOT_LinkedHashBase_used_data_offset = 20;
static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0;
static constexpr dart::compiler::target::word
AOT_MarkingStackBlock_pointers_offset = 8;
@@ -7081,7 +7081,7 @@
static constexpr dart::compiler::target::word AOT_Library_InstanceSize = 84;
static constexpr dart::compiler::target::word AOT_LibraryPrefix_InstanceSize =
20;
-static constexpr dart::compiler::target::word AOT_LinkedHashMap_InstanceSize =
+static constexpr dart::compiler::target::word AOT_LinkedHashBase_InstanceSize =
28;
static constexpr dart::compiler::target::word
AOT_MegamorphicCache_InstanceSize = 24;
@@ -7329,18 +7329,18 @@
static constexpr dart::compiler::target::word AOT_Isolate_single_step_offset =
72;
static constexpr dart::compiler::target::word AOT_Isolate_user_tag_offset = 32;
-static constexpr dart::compiler::target::word AOT_LinkedHashMap_data_offset =
+static constexpr dart::compiler::target::word AOT_LinkedHashBase_data_offset =
32;
static constexpr dart::compiler::target::word
- AOT_LinkedHashMap_deleted_keys_offset = 48;
+ AOT_LinkedHashBase_deleted_keys_offset = 48;
static constexpr dart::compiler::target::word
- AOT_LinkedHashMap_hash_mask_offset = 24;
-static constexpr dart::compiler::target::word AOT_LinkedHashMap_index_offset =
+ AOT_LinkedHashBase_hash_mask_offset = 24;
+static constexpr dart::compiler::target::word AOT_LinkedHashBase_index_offset =
16;
static constexpr dart::compiler::target::word
- AOT_LinkedHashMap_type_arguments_offset = 8;
+ AOT_LinkedHashBase_type_arguments_offset = 8;
static constexpr dart::compiler::target::word
- AOT_LinkedHashMap_used_data_offset = 40;
+ AOT_LinkedHashBase_used_data_offset = 40;
static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0;
static constexpr dart::compiler::target::word
AOT_MarkingStackBlock_pointers_offset = 16;
@@ -7691,7 +7691,7 @@
static constexpr dart::compiler::target::word AOT_Library_InstanceSize = 160;
static constexpr dart::compiler::target::word AOT_LibraryPrefix_InstanceSize =
40;
-static constexpr dart::compiler::target::word AOT_LinkedHashMap_InstanceSize =
+static constexpr dart::compiler::target::word AOT_LinkedHashBase_InstanceSize =
56;
static constexpr dart::compiler::target::word
AOT_MegamorphicCache_InstanceSize = 48;
@@ -7942,18 +7942,18 @@
static constexpr dart::compiler::target::word AOT_Isolate_single_step_offset =
72;
static constexpr dart::compiler::target::word AOT_Isolate_user_tag_offset = 32;
-static constexpr dart::compiler::target::word AOT_LinkedHashMap_data_offset =
+static constexpr dart::compiler::target::word AOT_LinkedHashBase_data_offset =
32;
static constexpr dart::compiler::target::word
- AOT_LinkedHashMap_deleted_keys_offset = 48;
+ AOT_LinkedHashBase_deleted_keys_offset = 48;
static constexpr dart::compiler::target::word
- AOT_LinkedHashMap_hash_mask_offset = 24;
-static constexpr dart::compiler::target::word AOT_LinkedHashMap_index_offset =
+ AOT_LinkedHashBase_hash_mask_offset = 24;
+static constexpr dart::compiler::target::word AOT_LinkedHashBase_index_offset =
16;
static constexpr dart::compiler::target::word
- AOT_LinkedHashMap_type_arguments_offset = 8;
+ AOT_LinkedHashBase_type_arguments_offset = 8;
static constexpr dart::compiler::target::word
- AOT_LinkedHashMap_used_data_offset = 40;
+ AOT_LinkedHashBase_used_data_offset = 40;
static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0;
static constexpr dart::compiler::target::word
AOT_MarkingStackBlock_pointers_offset = 16;
@@ -8305,7 +8305,7 @@
static constexpr dart::compiler::target::word AOT_Library_InstanceSize = 160;
static constexpr dart::compiler::target::word AOT_LibraryPrefix_InstanceSize =
40;
-static constexpr dart::compiler::target::word AOT_LinkedHashMap_InstanceSize =
+static constexpr dart::compiler::target::word AOT_LinkedHashBase_InstanceSize =
56;
static constexpr dart::compiler::target::word
AOT_MegamorphicCache_InstanceSize = 48;
@@ -8552,18 +8552,18 @@
static constexpr dart::compiler::target::word AOT_Isolate_single_step_offset =
72;
static constexpr dart::compiler::target::word AOT_Isolate_user_tag_offset = 32;
-static constexpr dart::compiler::target::word AOT_LinkedHashMap_data_offset =
+static constexpr dart::compiler::target::word AOT_LinkedHashBase_data_offset =
20;
static constexpr dart::compiler::target::word
- AOT_LinkedHashMap_deleted_keys_offset = 28;
+ AOT_LinkedHashBase_deleted_keys_offset = 28;
static constexpr dart::compiler::target::word
- AOT_LinkedHashMap_hash_mask_offset = 16;
-static constexpr dart::compiler::target::word AOT_LinkedHashMap_index_offset =
+ AOT_LinkedHashBase_hash_mask_offset = 16;
+static constexpr dart::compiler::target::word AOT_LinkedHashBase_index_offset =
12;
static constexpr dart::compiler::target::word
- AOT_LinkedHashMap_type_arguments_offset = 8;
+ AOT_LinkedHashBase_type_arguments_offset = 8;
static constexpr dart::compiler::target::word
- AOT_LinkedHashMap_used_data_offset = 24;
+ AOT_LinkedHashBase_used_data_offset = 24;
static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0;
static constexpr dart::compiler::target::word
AOT_MarkingStackBlock_pointers_offset = 16;
@@ -8914,7 +8914,7 @@
static constexpr dart::compiler::target::word AOT_Library_InstanceSize = 104;
static constexpr dart::compiler::target::word AOT_LibraryPrefix_InstanceSize =
24;
-static constexpr dart::compiler::target::word AOT_LinkedHashMap_InstanceSize =
+static constexpr dart::compiler::target::word AOT_LinkedHashBase_InstanceSize =
32;
static constexpr dart::compiler::target::word
AOT_MegamorphicCache_InstanceSize = 48;
@@ -9161,18 +9161,18 @@
static constexpr dart::compiler::target::word AOT_Isolate_single_step_offset =
72;
static constexpr dart::compiler::target::word AOT_Isolate_user_tag_offset = 32;
-static constexpr dart::compiler::target::word AOT_LinkedHashMap_data_offset =
+static constexpr dart::compiler::target::word AOT_LinkedHashBase_data_offset =
20;
static constexpr dart::compiler::target::word
- AOT_LinkedHashMap_deleted_keys_offset = 28;
+ AOT_LinkedHashBase_deleted_keys_offset = 28;
static constexpr dart::compiler::target::word
- AOT_LinkedHashMap_hash_mask_offset = 16;
-static constexpr dart::compiler::target::word AOT_LinkedHashMap_index_offset =
+ AOT_LinkedHashBase_hash_mask_offset = 16;
+static constexpr dart::compiler::target::word AOT_LinkedHashBase_index_offset =
12;
static constexpr dart::compiler::target::word
- AOT_LinkedHashMap_type_arguments_offset = 8;
+ AOT_LinkedHashBase_type_arguments_offset = 8;
static constexpr dart::compiler::target::word
- AOT_LinkedHashMap_used_data_offset = 24;
+ AOT_LinkedHashBase_used_data_offset = 24;
static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0;
static constexpr dart::compiler::target::word
AOT_MarkingStackBlock_pointers_offset = 16;
@@ -9524,7 +9524,7 @@
static constexpr dart::compiler::target::word AOT_Library_InstanceSize = 104;
static constexpr dart::compiler::target::word AOT_LibraryPrefix_InstanceSize =
24;
-static constexpr dart::compiler::target::word AOT_LinkedHashMap_InstanceSize =
+static constexpr dart::compiler::target::word AOT_LinkedHashBase_InstanceSize =
32;
static constexpr dart::compiler::target::word
AOT_MegamorphicCache_InstanceSize = 48;
@@ -9766,18 +9766,18 @@
static constexpr dart::compiler::target::word
AOT_IsolateGroup_cached_class_table_table_offset = 16;
static constexpr dart::compiler::target::word AOT_Isolate_user_tag_offset = 16;
-static constexpr dart::compiler::target::word AOT_LinkedHashMap_data_offset =
+static constexpr dart::compiler::target::word AOT_LinkedHashBase_data_offset =
16;
static constexpr dart::compiler::target::word
- AOT_LinkedHashMap_deleted_keys_offset = 24;
+ AOT_LinkedHashBase_deleted_keys_offset = 24;
static constexpr dart::compiler::target::word
- AOT_LinkedHashMap_hash_mask_offset = 12;
-static constexpr dart::compiler::target::word AOT_LinkedHashMap_index_offset =
+ AOT_LinkedHashBase_hash_mask_offset = 12;
+static constexpr dart::compiler::target::word AOT_LinkedHashBase_index_offset =
8;
static constexpr dart::compiler::target::word
- AOT_LinkedHashMap_type_arguments_offset = 4;
+ AOT_LinkedHashBase_type_arguments_offset = 4;
static constexpr dart::compiler::target::word
- AOT_LinkedHashMap_used_data_offset = 20;
+ AOT_LinkedHashBase_used_data_offset = 20;
static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0;
static constexpr dart::compiler::target::word
AOT_MarkingStackBlock_pointers_offset = 8;
@@ -10125,7 +10125,7 @@
static constexpr dart::compiler::target::word AOT_Library_InstanceSize = 84;
static constexpr dart::compiler::target::word AOT_LibraryPrefix_InstanceSize =
20;
-static constexpr dart::compiler::target::word AOT_LinkedHashMap_InstanceSize =
+static constexpr dart::compiler::target::word AOT_LinkedHashBase_InstanceSize =
28;
static constexpr dart::compiler::target::word
AOT_MegamorphicCache_InstanceSize = 24;
@@ -10366,18 +10366,18 @@
static constexpr dart::compiler::target::word
AOT_IsolateGroup_cached_class_table_table_offset = 32;
static constexpr dart::compiler::target::word AOT_Isolate_user_tag_offset = 32;
-static constexpr dart::compiler::target::word AOT_LinkedHashMap_data_offset =
+static constexpr dart::compiler::target::word AOT_LinkedHashBase_data_offset =
32;
static constexpr dart::compiler::target::word
- AOT_LinkedHashMap_deleted_keys_offset = 48;
+ AOT_LinkedHashBase_deleted_keys_offset = 48;
static constexpr dart::compiler::target::word
- AOT_LinkedHashMap_hash_mask_offset = 24;
-static constexpr dart::compiler::target::word AOT_LinkedHashMap_index_offset =
+ AOT_LinkedHashBase_hash_mask_offset = 24;
+static constexpr dart::compiler::target::word AOT_LinkedHashBase_index_offset =
16;
static constexpr dart::compiler::target::word
- AOT_LinkedHashMap_type_arguments_offset = 8;
+ AOT_LinkedHashBase_type_arguments_offset = 8;
static constexpr dart::compiler::target::word
- AOT_LinkedHashMap_used_data_offset = 40;
+ AOT_LinkedHashBase_used_data_offset = 40;
static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0;
static constexpr dart::compiler::target::word
AOT_MarkingStackBlock_pointers_offset = 16;
@@ -10728,7 +10728,7 @@
static constexpr dart::compiler::target::word AOT_Library_InstanceSize = 160;
static constexpr dart::compiler::target::word AOT_LibraryPrefix_InstanceSize =
40;
-static constexpr dart::compiler::target::word AOT_LinkedHashMap_InstanceSize =
+static constexpr dart::compiler::target::word AOT_LinkedHashBase_InstanceSize =
56;
static constexpr dart::compiler::target::word
AOT_MegamorphicCache_InstanceSize = 48;
@@ -10972,18 +10972,18 @@
static constexpr dart::compiler::target::word
AOT_IsolateGroup_cached_class_table_table_offset = 32;
static constexpr dart::compiler::target::word AOT_Isolate_user_tag_offset = 32;
-static constexpr dart::compiler::target::word AOT_LinkedHashMap_data_offset =
+static constexpr dart::compiler::target::word AOT_LinkedHashBase_data_offset =
32;
static constexpr dart::compiler::target::word
- AOT_LinkedHashMap_deleted_keys_offset = 48;
+ AOT_LinkedHashBase_deleted_keys_offset = 48;
static constexpr dart::compiler::target::word
- AOT_LinkedHashMap_hash_mask_offset = 24;
-static constexpr dart::compiler::target::word AOT_LinkedHashMap_index_offset =
+ AOT_LinkedHashBase_hash_mask_offset = 24;
+static constexpr dart::compiler::target::word AOT_LinkedHashBase_index_offset =
16;
static constexpr dart::compiler::target::word
- AOT_LinkedHashMap_type_arguments_offset = 8;
+ AOT_LinkedHashBase_type_arguments_offset = 8;
static constexpr dart::compiler::target::word
- AOT_LinkedHashMap_used_data_offset = 40;
+ AOT_LinkedHashBase_used_data_offset = 40;
static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0;
static constexpr dart::compiler::target::word
AOT_MarkingStackBlock_pointers_offset = 16;
@@ -11335,7 +11335,7 @@
static constexpr dart::compiler::target::word AOT_Library_InstanceSize = 160;
static constexpr dart::compiler::target::word AOT_LibraryPrefix_InstanceSize =
40;
-static constexpr dart::compiler::target::word AOT_LinkedHashMap_InstanceSize =
+static constexpr dart::compiler::target::word AOT_LinkedHashBase_InstanceSize =
56;
static constexpr dart::compiler::target::word
AOT_MegamorphicCache_InstanceSize = 48;
@@ -11575,18 +11575,18 @@
static constexpr dart::compiler::target::word
AOT_IsolateGroup_cached_class_table_table_offset = 32;
static constexpr dart::compiler::target::word AOT_Isolate_user_tag_offset = 32;
-static constexpr dart::compiler::target::word AOT_LinkedHashMap_data_offset =
+static constexpr dart::compiler::target::word AOT_LinkedHashBase_data_offset =
20;
static constexpr dart::compiler::target::word
- AOT_LinkedHashMap_deleted_keys_offset = 28;
+ AOT_LinkedHashBase_deleted_keys_offset = 28;
static constexpr dart::compiler::target::word
- AOT_LinkedHashMap_hash_mask_offset = 16;
-static constexpr dart::compiler::target::word AOT_LinkedHashMap_index_offset =
+ AOT_LinkedHashBase_hash_mask_offset = 16;
+static constexpr dart::compiler::target::word AOT_LinkedHashBase_index_offset =
12;
static constexpr dart::compiler::target::word
- AOT_LinkedHashMap_type_arguments_offset = 8;
+ AOT_LinkedHashBase_type_arguments_offset = 8;
static constexpr dart::compiler::target::word
- AOT_LinkedHashMap_used_data_offset = 24;
+ AOT_LinkedHashBase_used_data_offset = 24;
static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0;
static constexpr dart::compiler::target::word
AOT_MarkingStackBlock_pointers_offset = 16;
@@ -11937,7 +11937,7 @@
static constexpr dart::compiler::target::word AOT_Library_InstanceSize = 104;
static constexpr dart::compiler::target::word AOT_LibraryPrefix_InstanceSize =
24;
-static constexpr dart::compiler::target::word AOT_LinkedHashMap_InstanceSize =
+static constexpr dart::compiler::target::word AOT_LinkedHashBase_InstanceSize =
32;
static constexpr dart::compiler::target::word
AOT_MegamorphicCache_InstanceSize = 48;
@@ -12177,18 +12177,18 @@
static constexpr dart::compiler::target::word
AOT_IsolateGroup_cached_class_table_table_offset = 32;
static constexpr dart::compiler::target::word AOT_Isolate_user_tag_offset = 32;
-static constexpr dart::compiler::target::word AOT_LinkedHashMap_data_offset =
+static constexpr dart::compiler::target::word AOT_LinkedHashBase_data_offset =
20;
static constexpr dart::compiler::target::word
- AOT_LinkedHashMap_deleted_keys_offset = 28;
+ AOT_LinkedHashBase_deleted_keys_offset = 28;
static constexpr dart::compiler::target::word
- AOT_LinkedHashMap_hash_mask_offset = 16;
-static constexpr dart::compiler::target::word AOT_LinkedHashMap_index_offset =
+ AOT_LinkedHashBase_hash_mask_offset = 16;
+static constexpr dart::compiler::target::word AOT_LinkedHashBase_index_offset =
12;
static constexpr dart::compiler::target::word
- AOT_LinkedHashMap_type_arguments_offset = 8;
+ AOT_LinkedHashBase_type_arguments_offset = 8;
static constexpr dart::compiler::target::word
- AOT_LinkedHashMap_used_data_offset = 24;
+ AOT_LinkedHashBase_used_data_offset = 24;
static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0;
static constexpr dart::compiler::target::word
AOT_MarkingStackBlock_pointers_offset = 16;
@@ -12540,7 +12540,7 @@
static constexpr dart::compiler::target::word AOT_Library_InstanceSize = 104;
static constexpr dart::compiler::target::word AOT_LibraryPrefix_InstanceSize =
24;
-static constexpr dart::compiler::target::word AOT_LinkedHashMap_InstanceSize =
+static constexpr dart::compiler::target::word AOT_LinkedHashBase_InstanceSize =
32;
static constexpr dart::compiler::target::word
AOT_MegamorphicCache_InstanceSize = 48;
diff --git a/runtime/vm/compiler/runtime_offsets_list.h b/runtime/vm/compiler/runtime_offsets_list.h
index d943ed3..940f48d 100644
--- a/runtime/vm/compiler/runtime_offsets_list.h
+++ b/runtime/vm/compiler/runtime_offsets_list.h
@@ -156,12 +156,12 @@
FIELD(IsolateGroup, cached_class_table_table_offset) \
NOT_IN_PRODUCT(FIELD(Isolate, single_step_offset)) \
FIELD(Isolate, user_tag_offset) \
- FIELD(LinkedHashMap, data_offset) \
- FIELD(LinkedHashMap, deleted_keys_offset) \
- FIELD(LinkedHashMap, hash_mask_offset) \
- FIELD(LinkedHashMap, index_offset) \
- FIELD(LinkedHashMap, type_arguments_offset) \
- FIELD(LinkedHashMap, used_data_offset) \
+ FIELD(LinkedHashBase, data_offset) \
+ FIELD(LinkedHashBase, deleted_keys_offset) \
+ FIELD(LinkedHashBase, hash_mask_offset) \
+ FIELD(LinkedHashBase, index_offset) \
+ FIELD(LinkedHashBase, type_arguments_offset) \
+ FIELD(LinkedHashBase, used_data_offset) \
FIELD(LocalHandle, ptr_offset) \
FIELD(MarkingStackBlock, pointers_offset) \
FIELD(MarkingStackBlock, top_offset) \
@@ -364,7 +364,7 @@
SIZEOF(LanguageError, InstanceSize, UntaggedLanguageError) \
SIZEOF(Library, InstanceSize, UntaggedLibrary) \
SIZEOF(LibraryPrefix, InstanceSize, UntaggedLibraryPrefix) \
- SIZEOF(LinkedHashMap, InstanceSize, UntaggedLinkedHashMap) \
+ SIZEOF(LinkedHashBase, InstanceSize, UntaggedLinkedHashBase) \
SIZEOF(MegamorphicCache, InstanceSize, UntaggedMegamorphicCache) \
SIZEOF(Mint, InstanceSize, UntaggedMint) \
SIZEOF(MirrorReference, InstanceSize, UntaggedMirrorReference) \
diff --git a/runtime/vm/dart_api_impl.cc b/runtime/vm/dart_api_impl.cc
index 756db27..4b03928 100644
--- a/runtime/vm/dart_api_impl.cc
+++ b/runtime/vm/dart_api_impl.cc
@@ -585,8 +585,10 @@
intptr_t cid = raw_obj->GetClassId();
if (cid >= kNumPredefinedCids) {
ASSERT(Instance::Cast(Object::Handle(raw_obj)).IsValidNativeIndex(0));
- TypedDataPtr native_fields = *reinterpret_cast<TypedDataPtr*>(
- UntaggedObject::ToAddr(raw_obj) + sizeof(UntaggedObject));
+ TypedDataPtr native_fields =
+ reinterpret_cast<CompressedTypedDataPtr*>(
+ UntaggedObject::ToAddr(raw_obj) + sizeof(UntaggedObject))
+ ->Decompress(raw_obj->heap_base());
if (native_fields == TypedData::null()) {
*value = 0;
} else {
@@ -673,8 +675,10 @@
// No native fields or mismatched native field count.
return false;
}
- TypedDataPtr native_fields = *reinterpret_cast<TypedDataPtr*>(
- UntaggedObject::ToAddr(raw_obj) + sizeof(UntaggedObject));
+ TypedDataPtr native_fields =
+ reinterpret_cast<CompressedTypedDataPtr*>(
+ UntaggedObject::ToAddr(raw_obj) + sizeof(UntaggedObject))
+ ->Decompress(raw_obj->heap_base());
if (native_fields == TypedData::null()) {
// Native fields not initialized.
memset(field_values, 0, (num_fields * sizeof(field_values[0])));
diff --git a/runtime/vm/heap/become_test.cc b/runtime/vm/heap/become_test.cc
index a375486..bddba7f 100644
--- a/runtime/vm/heap/become_test.cc
+++ b/runtime/vm/heap/become_test.cc
@@ -101,7 +101,7 @@
}
ISOLATE_UNIT_TEST_CASE(BecomeForwardRememberedCards) {
- const intptr_t length = Heap::kNewAllocatableSize / kWordSize;
+ const intptr_t length = Heap::kNewAllocatableSize / Array::kBytesPerElement;
ASSERT(Array::UseCardMarkingForAllocation(length));
const Array& card_remembered_array = Array::Handle(Array::New(length));
EXPECT(card_remembered_array.ptr()->untag()->IsCardRemembered());
diff --git a/runtime/vm/object.h b/runtime/vm/object.h
index 2ed011c..7cc8063 100644
--- a/runtime/vm/object.h
+++ b/runtime/vm/object.h
@@ -3712,8 +3712,7 @@
V(IsExtensionMember, is_extension_member)
// Bit that is updated after function is constructed, has to be updated in
// concurrent-safe manner.
-#define FOR_EACH_FUNCTION_VOLATILE_KIND_BIT(V) \
- V(Inlinable, is_inlinable)
+#define FOR_EACH_FUNCTION_VOLATILE_KIND_BIT(V) V(Inlinable, is_inlinable)
#define DEFINE_ACCESSORS(name, accessor_name) \
void set_##accessor_name(bool value) const { \
@@ -3753,9 +3752,9 @@
// Single bit sized fields start here.
#define DECLARE_BIT(name, _) k##name##Bit,
FOR_EACH_FUNCTION_KIND_BIT(DECLARE_BIT)
- FOR_EACH_FUNCTION_VOLATILE_KIND_BIT(DECLARE_BIT)
+ FOR_EACH_FUNCTION_VOLATILE_KIND_BIT(DECLARE_BIT)
#undef DECLARE_BIT
- kNumTagBits
+ kNumTagBits
};
COMPILE_ASSERT(MethodRecognizer::kNumRecognizedMethods <
@@ -10832,17 +10831,21 @@
static InstancePtr Data(const Instance& view_obj) {
ASSERT(!view_obj.IsNull());
- return *reinterpret_cast<InstancePtr const*>(view_obj.untag() +
- kDataOffset);
+ return reinterpret_cast<CompressedInstancePtr*>(
+ reinterpret_cast<uword>(view_obj.untag()) + data_offset())
+ ->Decompress(view_obj.untag()->heap_base());
}
- static intptr_t NumberOfFields() { return kDataOffset; }
+ static intptr_t NumberOfFields() { return kNumFields; }
- static intptr_t data_offset() { return kWordSize * kDataOffset; }
+ static intptr_t data_offset() {
+ return sizeof(UntaggedObject) + (kCompressedWordSize * kDataIndex);
+ }
private:
enum {
- kDataOffset = 1,
+ kDataIndex = 0,
+ kNumFields = 1,
};
};
@@ -10916,11 +10919,50 @@
friend class Class;
};
+class LinkedHashBase : public Instance {
+ public:
+ static intptr_t InstanceSize() {
+ return RoundedAllocationSize(sizeof(UntaggedLinkedHashBase));
+ }
+
+ static intptr_t type_arguments_offset() {
+ return OFFSET_OF(UntaggedLinkedHashBase, type_arguments_);
+ }
+
+ static intptr_t index_offset() {
+ return OFFSET_OF(UntaggedLinkedHashBase, index_);
+ }
+
+ static intptr_t data_offset() {
+ return OFFSET_OF(UntaggedLinkedHashBase, data_);
+ }
+
+ static intptr_t hash_mask_offset() {
+ return OFFSET_OF(UntaggedLinkedHashBase, hash_mask_);
+ }
+
+ static intptr_t used_data_offset() {
+ return OFFSET_OF(UntaggedLinkedHashBase, used_data_);
+ }
+
+ static intptr_t deleted_keys_offset() {
+ return OFFSET_OF(UntaggedLinkedHashBase, deleted_keys_);
+ }
+
+ protected:
+ // Keep this in sync with Dart implementation (lib/compact_hash.dart).
+ static const intptr_t kInitialIndexBits = 2;
+ static const intptr_t kInitialIndexSize = 1 << (kInitialIndexBits + 1);
+
+ friend class Class;
+ friend class LinkedHashBaseDeserializationCluster;
+};
+
// Corresponds to
// - "new Map()",
// - non-const map literals, and
// - the default constructor of LinkedHashMap in dart:collection.
-class LinkedHashMap : public Instance {
+class LinkedHashMap : public LinkedHashBase {
public:
static intptr_t InstanceSize() {
return RoundedAllocationSize(sizeof(UntaggedLinkedHashMap));
@@ -10946,48 +10988,30 @@
// as canonical. See for example tests/isolate/message3_test.dart.
untag()->set_type_arguments(value.ptr());
}
- static intptr_t type_arguments_offset() {
- return OFFSET_OF(UntaggedLinkedHashMap, type_arguments_);
- }
TypedDataPtr index() const { return untag()->index(); }
void SetIndex(const TypedData& value) const {
ASSERT(!value.IsNull());
untag()->set_index(value.ptr());
}
- static intptr_t index_offset() {
- return OFFSET_OF(UntaggedLinkedHashMap, index_);
- }
ArrayPtr data() const { return untag()->data(); }
void SetData(const Array& value) const { untag()->set_data(value.ptr()); }
- static intptr_t data_offset() {
- return OFFSET_OF(UntaggedLinkedHashMap, data_);
- }
SmiPtr hash_mask() const { return untag()->hash_mask(); }
void SetHashMask(intptr_t value) const {
untag()->set_hash_mask(Smi::New(value));
}
- static intptr_t hash_mask_offset() {
- return OFFSET_OF(UntaggedLinkedHashMap, hash_mask_);
- }
SmiPtr used_data() const { return untag()->used_data(); }
void SetUsedData(intptr_t value) const {
untag()->set_used_data(Smi::New(value));
}
- static intptr_t used_data_offset() {
- return OFFSET_OF(UntaggedLinkedHashMap, used_data_);
- }
SmiPtr deleted_keys() const { return untag()->deleted_keys(); }
void SetDeletedKeys(intptr_t value) const {
untag()->set_deleted_keys(Smi::New(value));
}
- static intptr_t deleted_keys_offset() {
- return OFFSET_OF(UntaggedLinkedHashMap, deleted_keys_);
- }
intptr_t Length() const {
// The map may be uninitialized.
@@ -11038,11 +11062,7 @@
};
private:
- FINAL_HEAP_OBJECT_IMPLEMENTATION(LinkedHashMap, Instance);
-
- // Keep this in sync with Dart implementation (lib/compact_hash.dart).
- static const intptr_t kInitialIndexBits = 2;
- static const intptr_t kInitialIndexSize = 1 << (kInitialIndexBits + 1);
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(LinkedHashMap, LinkedHashBase);
// Allocate a map, but leave all fields set to null.
// Used during deserialization (since map might contain itself as key/value).
diff --git a/runtime/vm/raw_object.h b/runtime/vm/raw_object.h
index fbbce4c..4d0bfbb 100644
--- a/runtime/vm/raw_object.h
+++ b/runtime/vm/raw_object.h
@@ -2113,8 +2113,8 @@
TokenPosition begin_pos =
TokenPosition::kNoSource; // Token position of scope start.
TokenPosition end_pos =
- TokenPosition::kNoSource; // Token position of scope end.
- int16_t scope_id; // Scope to which the variable belongs.
+ TokenPosition::kNoSource; // Token position of scope end.
+ int16_t scope_id; // Scope to which the variable belongs.
VarInfoKind kind() const {
return static_cast<VarInfoKind>(KindBits::decode(index_kind));
@@ -2986,8 +2986,8 @@
friend class ReversePc;
};
-class UntaggedLinkedHashMap : public UntaggedInstance {
- RAW_HEAP_OBJECT_IMPLEMENTATION(LinkedHashMap);
+class UntaggedLinkedHashBase : public UntaggedInstance {
+ RAW_HEAP_OBJECT_IMPLEMENTATION(LinkedHashBase);
COMPRESSED_POINTER_FIELD(TypeArgumentsPtr, type_arguments)
VISIT_FROM(type_arguments)
@@ -2998,6 +2998,10 @@
COMPRESSED_POINTER_FIELD(SmiPtr, deleted_keys)
VISIT_TO(deleted_keys)
CompressedObjectPtr* to_snapshot(Snapshot::Kind kind) { return to(); }
+};
+
+class UntaggedLinkedHashMap : public UntaggedLinkedHashBase {
+ RAW_HEAP_OBJECT_IMPLEMENTATION(LinkedHashMap);
friend class SnapshotReader;
};
diff --git a/runtime/vm/raw_object_fields.cc b/runtime/vm/raw_object_fields.cc
index a1d4a89..9c0d887a 100644
--- a/runtime/vm/raw_object_fields.cc
+++ b/runtime/vm/raw_object_fields.cc
@@ -159,12 +159,12 @@
F(GrowableObjectArray, type_arguments_) \
F(GrowableObjectArray, length_) \
F(GrowableObjectArray, data_) \
- F(LinkedHashMap, type_arguments_) \
- F(LinkedHashMap, index_) \
- F(LinkedHashMap, hash_mask_) \
- F(LinkedHashMap, data_) \
- F(LinkedHashMap, used_data_) \
- F(LinkedHashMap, deleted_keys_) \
+ F(LinkedHashBase, type_arguments_) \
+ F(LinkedHashBase, index_) \
+ F(LinkedHashBase, hash_mask_) \
+ F(LinkedHashBase, data_) \
+ F(LinkedHashBase, used_data_) \
+ F(LinkedHashBase, deleted_keys_) \
F(TypedData, length_) \
F(ExternalTypedData, length_) \
F(ReceivePort, send_port_) \
diff --git a/runtime/vm/tagged_pointer.h b/runtime/vm/tagged_pointer.h
index dac584b..4f3b1f6 100644
--- a/runtime/vm/tagged_pointer.h
+++ b/runtime/vm/tagged_pointer.h
@@ -394,7 +394,8 @@
DEFINE_TAGGED_POINTER(Array, Instance)
DEFINE_TAGGED_POINTER(ImmutableArray, Array)
DEFINE_TAGGED_POINTER(GrowableObjectArray, Instance)
-DEFINE_TAGGED_POINTER(LinkedHashMap, Instance)
+DEFINE_TAGGED_POINTER(LinkedHashBase, Instance)
+DEFINE_TAGGED_POINTER(LinkedHashMap, LinkedHashBase)
DEFINE_TAGGED_POINTER(Float32x4, Instance)
DEFINE_TAGGED_POINTER(Int32x4, Instance)
DEFINE_TAGGED_POINTER(Float64x2, Instance)
diff --git a/sdk/lib/_internal/vm/lib/compact_hash.dart b/sdk/lib/_internal/vm/lib/compact_hash.dart
index 7ff2354..492e9bd 100644
--- a/sdk/lib/_internal/vm/lib/compact_hash.dart
+++ b/sdk/lib/_internal/vm/lib/compact_hash.dart
@@ -49,42 +49,42 @@
@pragma("vm:recognized", "other")
@pragma("vm:exact-result-type", "dart:typed_data#_Uint32List")
@pragma("vm:prefer-inline")
- Uint32List get _index native "LinkedHashMap_getIndex";
+ Uint32List get _index native "LinkedHashBase_getIndex";
@pragma("vm:recognized", "other")
@pragma("vm:prefer-inline")
- void set _index(Uint32List value) native "LinkedHashMap_setIndex";
+ void set _index(Uint32List value) native "LinkedHashBase_setIndex";
@pragma("vm:recognized", "other")
@pragma("vm:exact-result-type", "dart:core#_Smi")
@pragma("vm:prefer-inline")
- int get _hashMask native "LinkedHashMap_getHashMask";
+ int get _hashMask native "LinkedHashBase_getHashMask";
@pragma("vm:recognized", "other")
@pragma("vm:prefer-inline")
- void set _hashMask(int value) native "LinkedHashMap_setHashMask";
+ void set _hashMask(int value) native "LinkedHashBase_setHashMask";
@pragma("vm:recognized", "other")
@pragma("vm:exact-result-type", "dart:core#_List")
@pragma("vm:prefer-inline")
- List get _data native "LinkedHashMap_getData";
+ List get _data native "LinkedHashBase_getData";
@pragma("vm:recognized", "other")
@pragma("vm:prefer-inline")
- void set _data(List value) native "LinkedHashMap_setData";
+ void set _data(List value) native "LinkedHashBase_setData";
@pragma("vm:recognized", "other")
@pragma("vm:exact-result-type", "dart:core#_Smi")
@pragma("vm:prefer-inline")
- int get _usedData native "LinkedHashMap_getUsedData";
+ int get _usedData native "LinkedHashBase_getUsedData";
@pragma("vm:recognized", "other")
@pragma("vm:prefer-inline")
- void set _usedData(int value) native "LinkedHashMap_setUsedData";
+ void set _usedData(int value) native "LinkedHashBase_setUsedData";
@pragma("vm:recognized", "other")
@pragma("vm:exact-result-type", "dart:core#_Smi")
@pragma("vm:prefer-inline")
- int get _deletedKeys native "LinkedHashMap_getDeletedKeys";
+ int get _deletedKeys native "LinkedHashBase_getDeletedKeys";
@pragma("vm:recognized", "other")
@pragma("vm:prefer-inline")
- void set _deletedKeys(int value) native "LinkedHashMap_setDeletedKeys";
+ void set _deletedKeys(int value) native "LinkedHashBase_setDeletedKeys";
}
// This mixin can be applied to _HashFieldBase or _HashVMBase (for
diff --git a/tools/VERSION b/tools/VERSION
index d80c7ef..cd931f8 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
MAJOR 2
MINOR 14
PATCH 0
-PRERELEASE 291
+PRERELEASE 292
PRERELEASE_PATCH 0
\ No newline at end of file