Version 2.18.0-252.0.dev
Merge commit 'c48f6fea580178bd34f2d872588dcc1c79bdb01c' into 'dev'
diff --git a/runtime/vm/compiler/assembler/disassembler.h b/runtime/vm/compiler/assembler/disassembler.h
index d58a0c9..7d090e4 100644
--- a/runtime/vm/compiler/assembler/disassembler.h
+++ b/runtime/vm/compiler/assembler/disassembler.h
@@ -144,7 +144,11 @@
#if !defined(PRODUCT) || defined(FORCE_INCLUDE_DISASSEMBLER)
DisassembleToStdout stdout_formatter;
LogBlock lb;
- Disassemble(start, end, &stdout_formatter, code);
+ if (!code.IsNull()) {
+ Disassemble(start, end, &stdout_formatter, code, &code.comments());
+ } else {
+ Disassemble(start, end, &stdout_formatter, code);
+ }
#else
UNREACHABLE();
#endif
diff --git a/runtime/vm/compiler/ffi/native_type.cc b/runtime/vm/compiler/ffi/native_type.cc
index 27fc39d..ea0582b 100644
--- a/runtime/vm/compiler/ffi/native_type.cc
+++ b/runtime/vm/compiler/ffi/native_type.cc
@@ -58,6 +58,11 @@
return static_cast<const NativeCompoundType&>(*this);
}
+const NativeStructType& NativeType::AsStruct() const {
+ ASSERT(IsStruct());
+ return static_cast<const NativeStructType&>(*this);
+}
+
bool NativePrimitiveType::IsInt() const {
switch (representation_) {
case kInt8:
diff --git a/runtime/vm/compiler/ffi/native_type.h b/runtime/vm/compiler/ffi/native_type.h
index e85f091..25ecfbe 100644
--- a/runtime/vm/compiler/ffi/native_type.h
+++ b/runtime/vm/compiler/ffi/native_type.h
@@ -31,6 +31,7 @@
class NativePrimitiveType;
class NativeArrayType;
class NativeCompoundType;
+class NativeStructType;
// NativeTypes are the types used in calling convention specifications:
// integers, floats, and compounds.
@@ -74,6 +75,8 @@
const NativeArrayType& AsArray() const;
virtual bool IsCompound() const { return false; }
const NativeCompoundType& AsCompound() const;
+ virtual bool IsStruct() const { return false; }
+ const NativeStructType& AsStruct() const;
virtual bool IsInt() const { return false; }
virtual bool IsFloat() const { return false; }
@@ -348,6 +351,8 @@
return member_offsets_;
}
+ virtual bool IsStruct() const { return true; }
+
#if !defined(DART_PRECOMPILED_RUNTIME)
virtual bool ContainsOnlyFloats(Range range) const;
#endif // !defined(DART_PRECOMPILED_RUNTIME)
diff --git a/runtime/vm/object.h b/runtime/vm/object.h
index 1b32e7e..0ed84a6 100644
--- a/runtime/vm/object.h
+++ b/runtime/vm/object.h
@@ -12687,7 +12687,7 @@
//
// This helper class can then be used via
//
-// using CallTableView = ArrayOfTuplesVied<
+// using CallTableView = ArrayOfTuplesView<
// Code::Kind, std::tuple<Smi, Function, Code>>;
//
// auto& array = Array::Handle(code.static_calls_targets_table());
diff --git a/runtime/vm/raw_object.h b/runtime/vm/raw_object.h
index 2e4ad32..b4fb7b6 100644
--- a/runtime/vm/raw_object.h
+++ b/runtime/vm/raw_object.h
@@ -1174,6 +1174,7 @@
/* a forwarder which performs type checks for arguments of a dynamic call */ \
/* (i.e., those checks omitted by the caller for interface calls). */ \
V(DynamicInvocationForwarder) \
+ /* A `dart:ffi` call or callback trampoline. */ \
V(FfiTrampoline)
enum Kind {
diff --git a/tools/VERSION b/tools/VERSION
index d2b76b1..047aea3 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
MAJOR 2
MINOR 18
PATCH 0
-PRERELEASE 251
+PRERELEASE 252
PRERELEASE_PATCH 0
\ No newline at end of file