Skip to content

Commit

Permalink
[vm/ffi] Remove derived pointers inside structs
Browse files Browse the repository at this point in the history
Required for finalizers: #35770

Change-Id: Ic512a4efd81cbd38cd836a8e8ad80464d2a3481f
Cq-Include-Trybots: luci.dart.try:vm-ffi-android-debug-arm-try,vm-ffi-android-debug-arm64-try,app-kernel-linux-debug-x64-try,vm-kernel-linux-debug-ia32-try,vm-kernel-win-debug-x64-try,vm-kernel-win-debug-ia32-try,vm-kernel-precomp-linux-debug-x64-try,vm-dartkb-linux-release-x64-abi-try,vm-kernel-precomp-android-release-arm64-try,vm-kernel-asan-linux-release-x64-try,vm-kernel-linux-release-simarm-try,vm-kernel-linux-release-simarm64-try,vm-kernel-precomp-android-release-arm_x64-try,vm-kernel-precomp-obfuscate-linux-release-x64-try,dart-sdk-linux-try,analyzer-analysis-server-linux-try,analyzer-linux-release-try,front-end-linux-release-x64-try,vm-kernel-precomp-win-release-x64-try,vm-kernel-mac-debug-x64-try,analyzer-nnbd-linux-release-try,dart2js-nnbd-linux-x64-chrome-try,ddc-nnbd-linux-release-chrome-try,front-end-nnbd-linux-release-x64-try,vm-kernel-nnbd-linux-debug-x64-try,vm-kernel-nnbd-linux-release-x64-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/135906
Reviewed-by: Martin Kustermann <kustermann@google.com>
  • Loading branch information
dcharkes committed Feb 18, 2020
1 parent 953377a commit 4f28463
Show file tree
Hide file tree
Showing 11 changed files with 152 additions and 199 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,24 +18,18 @@ class Coordinate extends ffi::Struct {
static factory allocate(core::double* x, core::double* y, ffi::Pointer<self::Coordinate*>* next) → self::Coordinate* {
return let final self::Coordinate* #t1 = ffi::StructPointer|get#ref<self::Coordinate*>(all::allocate<self::Coordinate*>()) in let final void #t2 = #t1.{self::Coordinate::x} = x in let final void #t3 = #t1.{self::Coordinate::y} = y in let final void #t4 = #t1.{self::Coordinate::next} = next in #t1;
}
get #_ptr_x() → ffi::Pointer<ffi::Double*>*
return this.{ffi::Struct::_addressOf}.{ffi::Pointer::cast}<ffi::Double*>();
get x() → core::double*
return ffi::_loadDouble(this.{self::Coordinate::#_ptr_x}, #C7);
return ffi::_loadDouble(this.{ffi::Struct::_addressOf}, (#C8).{core::List::[]}(ffi::_abi()));
set x(core::double* #v) → void
return ffi::_storeDouble(this.{self::Coordinate::#_ptr_x}, #C7, #v);
get #_ptr_y() → ffi::Pointer<ffi::Double*>*
return this.{ffi::Struct::_addressOf}.{ffi::Pointer::_offsetBy}((#C9).{core::List::[]}(ffi::_abi())).{ffi::Pointer::cast}<ffi::Double*>();
return ffi::_storeDouble(this.{ffi::Struct::_addressOf}, (#C8).{core::List::[]}(ffi::_abi()), #v);
get y() → core::double*
return ffi::_loadDouble(this.{self::Coordinate::#_ptr_y}, #C7);
return ffi::_loadDouble(this.{ffi::Struct::_addressOf}, (#C10).{core::List::[]}(ffi::_abi()));
set y(core::double* #v) → void
return ffi::_storeDouble(this.{self::Coordinate::#_ptr_y}, #C7, #v);
get #_ptr_next() → ffi::Pointer<ffi::Pointer<self::Coordinate*>*>*
return this.{ffi::Struct::_addressOf}.{ffi::Pointer::_offsetBy}((#C11).{core::List::[]}(ffi::_abi())).{ffi::Pointer::cast}<ffi::Pointer<self::Coordinate*>*>();
return ffi::_storeDouble(this.{ffi::Struct::_addressOf}, (#C10).{core::List::[]}(ffi::_abi()), #v);
get next() → ffi::Pointer<self::Coordinate*>*
return ffi::_loadPointer<ffi::Pointer<self::Coordinate*>*>(this.{self::Coordinate::#_ptr_next}, #C7);
return ffi::_fromAddress<self::Coordinate*>(ffi::_loadIntPtr(this.{ffi::Struct::_addressOf}, (#C12).{core::List::[]}(ffi::_abi())));
set next(ffi::Pointer<self::Coordinate*>* #v) → void
return ffi::_storePointer<ffi::Pointer<self::Coordinate*>*>(this.{self::Coordinate::#_ptr_next}, #C7, #v);
return ffi::_storeIntPtr(this.{ffi::Struct::_addressOf}, (#C12).{core::List::[]}(ffi::_abi()), #v.{=ffi::Pointer::address});
}
static method main() → dynamic {}

Expand All @@ -47,8 +41,9 @@ constants {
#C5 = 20
#C6 = <core::int*>[#C4, #C5, #C4]
#C7 = 0
#C8 = 8
#C9 = <core::int*>[#C8, #C8, #C8]
#C10 = 16
#C11 = <core::int*>[#C10, #C10, #C10]
#C8 = <core::int*>[#C7, #C7, #C7]
#C9 = 8
#C10 = <core::int*>[#C9, #C9, #C9]
#C11 = 16
#C12 = <core::int*>[#C11, #C11, #C11]
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,24 +18,18 @@ class Coordinate extends ffi::Struct {
static factory allocate(core::double* x, core::double* y, ffi::Pointer<self::Coordinate*>* next) → self::Coordinate* {
return let final self::Coordinate* #t1 = ffi::StructPointer|get#ref<self::Coordinate*>(all::allocate<self::Coordinate*>()) in let final void #t2 = #t1.{self::Coordinate::x} = x in let final void #t3 = #t1.{self::Coordinate::y} = y in let final void #t4 = #t1.{self::Coordinate::next} = next in #t1;
}
get #_ptr_x() → ffi::Pointer<ffi::Double*>*
return this.{ffi::Struct::_addressOf}.{ffi::Pointer::cast}<ffi::Double*>();
get x() → core::double*
return ffi::_loadDouble(this.{self::Coordinate::#_ptr_x}, #C7);
return ffi::_loadDouble(this.{ffi::Struct::_addressOf}, (#C8).{core::List::[]}(ffi::_abi()));
set x(core::double* #v) → void
return ffi::_storeDouble(this.{self::Coordinate::#_ptr_x}, #C7, #v);
get #_ptr_y() → ffi::Pointer<ffi::Double*>*
return this.{ffi::Struct::_addressOf}.{ffi::Pointer::_offsetBy}((#C9).{core::List::[]}(ffi::_abi())).{ffi::Pointer::cast}<ffi::Double*>();
return ffi::_storeDouble(this.{ffi::Struct::_addressOf}, (#C8).{core::List::[]}(ffi::_abi()), #v);
get y() → core::double*
return ffi::_loadDouble(this.{self::Coordinate::#_ptr_y}, #C7);
return ffi::_loadDouble(this.{ffi::Struct::_addressOf}, (#C10).{core::List::[]}(ffi::_abi()));
set y(core::double* #v) → void
return ffi::_storeDouble(this.{self::Coordinate::#_ptr_y}, #C7, #v);
get #_ptr_next() → ffi::Pointer<ffi::Pointer<self::Coordinate*>*>*
return this.{ffi::Struct::_addressOf}.{ffi::Pointer::_offsetBy}((#C11).{core::List::[]}(ffi::_abi())).{ffi::Pointer::cast}<ffi::Pointer<self::Coordinate*>*>();
return ffi::_storeDouble(this.{ffi::Struct::_addressOf}, (#C10).{core::List::[]}(ffi::_abi()), #v);
get next() → ffi::Pointer<self::Coordinate*>*
return ffi::_loadPointer<ffi::Pointer<self::Coordinate*>*>(this.{self::Coordinate::#_ptr_next}, #C7);
return ffi::_fromAddress<self::Coordinate*>(ffi::_loadIntPtr(this.{ffi::Struct::_addressOf}, (#C12).{core::List::[]}(ffi::_abi())));
set next(ffi::Pointer<self::Coordinate*>* #v) → void
return ffi::_storePointer<ffi::Pointer<self::Coordinate*>*>(this.{self::Coordinate::#_ptr_next}, #C7, #v);
return ffi::_storeIntPtr(this.{ffi::Struct::_addressOf}, (#C12).{core::List::[]}(ffi::_abi()), #v.{=ffi::Pointer::address});
}
static method main() → dynamic {}

Expand All @@ -47,8 +41,9 @@ constants {
#C5 = 20
#C6 = <core::int*>[#C4, #C5, #C4]
#C7 = 0
#C8 = 8
#C9 = <core::int*>[#C8, #C8, #C8]
#C10 = 16
#C11 = <core::int*>[#C10, #C10, #C10]
#C8 = <core::int*>[#C7, #C7, #C7]
#C9 = 8
#C10 = <core::int*>[#C9, #C9, #C9]
#C11 = 16
#C12 = <core::int*>[#C11, #C11, #C11]
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,24 +18,18 @@ class Coordinate extends ffi::Struct {
static factory allocate(core::double* x, core::double* y, ffi::Pointer<self::Coordinate*>* next) → self::Coordinate* {
return let final self::Coordinate* #t1 = ffi::StructPointer|get#ref<self::Coordinate*>(all::allocate<self::Coordinate*>()) in let final void #t2 = #t1.{self::Coordinate::x} = x in let final void #t3 = #t1.{self::Coordinate::y} = y in let final void #t4 = #t1.{self::Coordinate::next} = next in #t1;
}
get #_ptr_x() → ffi::Pointer<ffi::Double*>*
return this.{ffi::Struct::_addressOf}.{ffi::Pointer::cast}<ffi::Double*>();
get x() → core::double*
return ffi::_loadDouble(this.{self::Coordinate::#_ptr_x}, #C7);
return ffi::_loadDouble(this.{ffi::Struct::_addressOf}, (#C8).{core::List::[]}(ffi::_abi()));
set x(core::double* #v) → void
return ffi::_storeDouble(this.{self::Coordinate::#_ptr_x}, #C7, #v);
get #_ptr_y() → ffi::Pointer<ffi::Double*>*
return this.{ffi::Struct::_addressOf}.{ffi::Pointer::_offsetBy}((#C9).{core::List::[]}(ffi::_abi())).{ffi::Pointer::cast}<ffi::Double*>();
return ffi::_storeDouble(this.{ffi::Struct::_addressOf}, (#C8).{core::List::[]}(ffi::_abi()), #v);
get y() → core::double*
return ffi::_loadDouble(this.{self::Coordinate::#_ptr_y}, #C7);
return ffi::_loadDouble(this.{ffi::Struct::_addressOf}, (#C10).{core::List::[]}(ffi::_abi()));
set y(core::double* #v) → void
return ffi::_storeDouble(this.{self::Coordinate::#_ptr_y}, #C7, #v);
get #_ptr_next() → ffi::Pointer<ffi::Pointer<self::Coordinate*>*>*
return this.{ffi::Struct::_addressOf}.{ffi::Pointer::_offsetBy}((#C11).{core::List::[]}(ffi::_abi())).{ffi::Pointer::cast}<ffi::Pointer<self::Coordinate*>*>();
return ffi::_storeDouble(this.{ffi::Struct::_addressOf}, (#C10).{core::List::[]}(ffi::_abi()), #v);
get next() → ffi::Pointer<self::Coordinate*>*
return ffi::_loadPointer<ffi::Pointer<self::Coordinate*>*>(this.{self::Coordinate::#_ptr_next}, #C7);
return ffi::_fromAddress<self::Coordinate*>(ffi::_loadIntPtr(this.{ffi::Struct::_addressOf}, (#C12).{core::List::[]}(ffi::_abi())));
set next(ffi::Pointer<self::Coordinate*>* #v) → void
return ffi::_storePointer<ffi::Pointer<self::Coordinate*>*>(this.{self::Coordinate::#_ptr_next}, #C7, #v);
return ffi::_storeIntPtr(this.{ffi::Struct::_addressOf}, (#C12).{core::List::[]}(ffi::_abi()), #v.{=ffi::Pointer::address});
}
static method main() → dynamic {}

Expand All @@ -47,8 +41,9 @@ constants {
#C5 = 20
#C6 = <core::int*>[#C4, #C5, #C4]
#C7 = 0
#C8 = 8
#C9 = <core::int*>[#C8, #C8, #C8]
#C10 = 16
#C11 = <core::int*>[#C10, #C10, #C10]
#C8 = <core::int*>[#C7, #C7, #C7]
#C9 = 8
#C10 = <core::int*>[#C9, #C9, #C9]
#C11 = 16
#C12 = <core::int*>[#C11, #C11, #C11]
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,24 +14,18 @@ library from "org-dartlang-test:///lib.dart" as lib {
static factory allocate(dart.core::double* x, dart.core::double* y, dart.ffi::Pointer<lib::Coordinate*>* next) → lib::Coordinate* {
return null;
}
get #_ptr_x() → dart.ffi::Pointer<dart.ffi::Double*>*
return this.{dart.ffi::Struct::_addressOf}.{dart.ffi::Pointer::cast}<dart.ffi::Double*>();
get x() → dart.core::double*
return dart.ffi::_loadDouble(this.{lib::Coordinate::#_ptr_x}, #C7);
return dart.ffi::_loadDouble(this.{dart.ffi::Struct::_addressOf}, (#C8).{dart.core::List::[]}(dart.ffi::_abi()));
set x(dart.core::double* #v) → void
return dart.ffi::_storeDouble(this.{lib::Coordinate::#_ptr_x}, #C7, #v);
get #_ptr_y() → dart.ffi::Pointer<dart.ffi::Double*>*
return this.{dart.ffi::Struct::_addressOf}.{dart.ffi::Pointer::_offsetBy}((#C9).{dart.core::List::[]}(dart.ffi::_abi())).{dart.ffi::Pointer::cast}<dart.ffi::Double*>();
return dart.ffi::_storeDouble(this.{dart.ffi::Struct::_addressOf}, (#C8).{dart.core::List::[]}(dart.ffi::_abi()), #v);
get y() → dart.core::double*
return dart.ffi::_loadDouble(this.{lib::Coordinate::#_ptr_y}, #C7);
return dart.ffi::_loadDouble(this.{dart.ffi::Struct::_addressOf}, (#C10).{dart.core::List::[]}(dart.ffi::_abi()));
set y(dart.core::double* #v) → void
return dart.ffi::_storeDouble(this.{lib::Coordinate::#_ptr_y}, #C7, #v);
get #_ptr_next() → dart.ffi::Pointer<dart.ffi::Pointer<lib::Coordinate*>*>*
return this.{dart.ffi::Struct::_addressOf}.{dart.ffi::Pointer::_offsetBy}((#C11).{dart.core::List::[]}(dart.ffi::_abi())).{dart.ffi::Pointer::cast}<dart.ffi::Pointer<lib::Coordinate*>*>();
return dart.ffi::_storeDouble(this.{dart.ffi::Struct::_addressOf}, (#C10).{dart.core::List::[]}(dart.ffi::_abi()), #v);
get next() → dart.ffi::Pointer<lib::Coordinate*>*
return dart.ffi::_loadPointer<dart.ffi::Pointer<lib::Coordinate*>*>(this.{lib::Coordinate::#_ptr_next}, #C7);
return dart.ffi::_fromAddress<lib::Coordinate*>(dart.ffi::_loadIntPtr(this.{dart.ffi::Struct::_addressOf}, (#C12).{dart.core::List::[]}(dart.ffi::_abi())));
set next(dart.ffi::Pointer<lib::Coordinate*>* #v) → void
return dart.ffi::_storePointer<dart.ffi::Pointer<lib::Coordinate*>*>(this.{lib::Coordinate::#_ptr_next}, #C7, #v);
return dart.ffi::_storeIntPtr(this.{dart.ffi::Struct::_addressOf}, (#C12).{dart.core::List::[]}(dart.ffi::_abi()), #v.{=dart.ffi::Pointer::address});
}
}
library from "org-dartlang-test:///main.dart" as main {
Expand All @@ -53,8 +47,9 @@ constants {
#C5 = 20
#C6 = <dart.core::int*>[#C4, #C5, #C4]
#C7 = 0
#C8 = 8
#C9 = <dart.core::int*>[#C8, #C8, #C8]
#C10 = 16
#C11 = <dart.core::int*>[#C10, #C10, #C10]
#C8 = <dart.core::int*>[#C7, #C7, #C7]
#C9 = 8
#C10 = <dart.core::int*>[#C9, #C9, #C9]
#C11 = 16
#C12 = <dart.core::int*>[#C11, #C11, #C11]
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,24 +14,18 @@ library from "org-dartlang-test:///lib.dart" as lib {
static factory allocate(dart.core::double* x, dart.core::double* y, dart.ffi::Pointer<lib::Coordinate*>* next) → lib::Coordinate* {
return null;
}
get #_ptr_x() → dart.ffi::Pointer<dart.ffi::Double*>*
return this.{dart.ffi::Struct::_addressOf}.{dart.ffi::Pointer::cast}<dart.ffi::Double*>();
get x() → dart.core::double*
return dart.ffi::_loadDouble(this.{lib::Coordinate::#_ptr_x}, #C7);
return dart.ffi::_loadDouble(this.{dart.ffi::Struct::_addressOf}, (#C8).{dart.core::List::[]}(dart.ffi::_abi()));
set x(dart.core::double* #v) → void
return dart.ffi::_storeDouble(this.{lib::Coordinate::#_ptr_x}, #C7, #v);
get #_ptr_y() → dart.ffi::Pointer<dart.ffi::Double*>*
return this.{dart.ffi::Struct::_addressOf}.{dart.ffi::Pointer::_offsetBy}((#C9).{dart.core::List::[]}(dart.ffi::_abi())).{dart.ffi::Pointer::cast}<dart.ffi::Double*>();
return dart.ffi::_storeDouble(this.{dart.ffi::Struct::_addressOf}, (#C8).{dart.core::List::[]}(dart.ffi::_abi()), #v);
get y() → dart.core::double*
return dart.ffi::_loadDouble(this.{lib::Coordinate::#_ptr_y}, #C7);
return dart.ffi::_loadDouble(this.{dart.ffi::Struct::_addressOf}, (#C10).{dart.core::List::[]}(dart.ffi::_abi()));
set y(dart.core::double* #v) → void
return dart.ffi::_storeDouble(this.{lib::Coordinate::#_ptr_y}, #C7, #v);
get #_ptr_next() → dart.ffi::Pointer<dart.ffi::Pointer<lib::Coordinate*>*>*
return this.{dart.ffi::Struct::_addressOf}.{dart.ffi::Pointer::_offsetBy}((#C11).{dart.core::List::[]}(dart.ffi::_abi())).{dart.ffi::Pointer::cast}<dart.ffi::Pointer<lib::Coordinate*>*>();
return dart.ffi::_storeDouble(this.{dart.ffi::Struct::_addressOf}, (#C10).{dart.core::List::[]}(dart.ffi::_abi()), #v);
get next() → dart.ffi::Pointer<lib::Coordinate*>*
return dart.ffi::_loadPointer<dart.ffi::Pointer<lib::Coordinate*>*>(this.{lib::Coordinate::#_ptr_next}, #C7);
return dart.ffi::_fromAddress<lib::Coordinate*>(dart.ffi::_loadIntPtr(this.{dart.ffi::Struct::_addressOf}, (#C12).{dart.core::List::[]}(dart.ffi::_abi())));
set next(dart.ffi::Pointer<lib::Coordinate*>* #v) → void
return dart.ffi::_storePointer<dart.ffi::Pointer<lib::Coordinate*>*>(this.{lib::Coordinate::#_ptr_next}, #C7, #v);
return dart.ffi::_storeIntPtr(this.{dart.ffi::Struct::_addressOf}, (#C12).{dart.core::List::[]}(dart.ffi::_abi()), #v.{=dart.ffi::Pointer::address});
}
}
library from "org-dartlang-test:///main.dart" as main {
Expand All @@ -57,8 +51,9 @@ constants {
#C5 = 20
#C6 = <dart.core::int*>[#C4, #C5, #C4]
#C7 = 0
#C8 = 8
#C9 = <dart.core::int*>[#C8, #C8, #C8]
#C10 = 16
#C11 = <dart.core::int*>[#C10, #C10, #C10]
#C8 = <dart.core::int*>[#C7, #C7, #C7]
#C9 = 8
#C10 = <dart.core::int*>[#C9, #C9, #C9]
#C11 = 16
#C12 = <dart.core::int*>[#C11, #C11, #C11]
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,24 +14,18 @@ library from "org-dartlang-test:///lib.dart" as lib {
static factory allocate(dart.core::double* x, dart.core::double* y, dart.ffi::Pointer<lib::Coordinate*>* next) → lib::Coordinate* {
return null;
}
get #_ptr_x() → dart.ffi::Pointer<dart.ffi::Double*>*
return this.{dart.ffi::Struct::_addressOf}.{dart.ffi::Pointer::cast}<dart.ffi::Double*>();
get x() → dart.core::double*
return dart.ffi::_loadDouble(this.{lib::Coordinate::#_ptr_x}, #C7);
return dart.ffi::_loadDouble(this.{dart.ffi::Struct::_addressOf}, (#C8).{dart.core::List::[]}(dart.ffi::_abi()));
set x(dart.core::double* #v) → void
return dart.ffi::_storeDouble(this.{lib::Coordinate::#_ptr_x}, #C7, #v);
get #_ptr_y() → dart.ffi::Pointer<dart.ffi::Double*>*
return this.{dart.ffi::Struct::_addressOf}.{dart.ffi::Pointer::_offsetBy}((#C9).{dart.core::List::[]}(dart.ffi::_abi())).{dart.ffi::Pointer::cast}<dart.ffi::Double*>();
return dart.ffi::_storeDouble(this.{dart.ffi::Struct::_addressOf}, (#C8).{dart.core::List::[]}(dart.ffi::_abi()), #v);
get y() → dart.core::double*
return dart.ffi::_loadDouble(this.{lib::Coordinate::#_ptr_y}, #C7);
return dart.ffi::_loadDouble(this.{dart.ffi::Struct::_addressOf}, (#C10).{dart.core::List::[]}(dart.ffi::_abi()));
set y(dart.core::double* #v) → void
return dart.ffi::_storeDouble(this.{lib::Coordinate::#_ptr_y}, #C7, #v);
get #_ptr_next() → dart.ffi::Pointer<dart.ffi::Pointer<lib::Coordinate*>*>*
return this.{dart.ffi::Struct::_addressOf}.{dart.ffi::Pointer::_offsetBy}((#C11).{dart.core::List::[]}(dart.ffi::_abi())).{dart.ffi::Pointer::cast}<dart.ffi::Pointer<lib::Coordinate*>*>();
return dart.ffi::_storeDouble(this.{dart.ffi::Struct::_addressOf}, (#C10).{dart.core::List::[]}(dart.ffi::_abi()), #v);
get next() → dart.ffi::Pointer<lib::Coordinate*>*
return dart.ffi::_loadPointer<dart.ffi::Pointer<lib::Coordinate*>*>(this.{lib::Coordinate::#_ptr_next}, #C7);
return dart.ffi::_fromAddress<lib::Coordinate*>(dart.ffi::_loadIntPtr(this.{dart.ffi::Struct::_addressOf}, (#C12).{dart.core::List::[]}(dart.ffi::_abi())));
set next(dart.ffi::Pointer<lib::Coordinate*>* #v) → void
return dart.ffi::_storePointer<dart.ffi::Pointer<lib::Coordinate*>*>(this.{lib::Coordinate::#_ptr_next}, #C7, #v);
return dart.ffi::_storeIntPtr(this.{dart.ffi::Struct::_addressOf}, (#C12).{dart.core::List::[]}(dart.ffi::_abi()), #v.{=dart.ffi::Pointer::address});
}
}
library from "org-dartlang-test:///main.dart" as main {
Expand All @@ -54,8 +48,9 @@ constants {
#C5 = 20
#C6 = <dart.core::int*>[#C4, #C5, #C4]
#C7 = 0
#C8 = 8
#C9 = <dart.core::int*>[#C8, #C8, #C8]
#C10 = 16
#C11 = <dart.core::int*>[#C10, #C10, #C10]
#C8 = <dart.core::int*>[#C7, #C7, #C7]
#C9 = 8
#C10 = <dart.core::int*>[#C9, #C9, #C9]
#C11 = 16
#C12 = <dart.core::int*>[#C11, #C11, #C11]
}
Loading

0 comments on commit 4f28463

Please sign in to comment.