Remove extraneous eightbytes check for native structures and add tests. (#21590)
authorJeremy Koritzinsky <jkoritzinsky@gmail.com>
Wed, 9 Jan 2019 18:06:25 +0000 (10:06 -0800)
committerGitHub <noreply@github.com>
Wed, 9 Jan 2019 18:06:25 +0000 (10:06 -0800)
commit03e2c029f7bbd36e06bcad3822b1dd3866772170
tree4f5d82262e07650fdcb9e928b85132309ac1bc3e
parent7e0608fee5cacbf5bf7d0c3886e2fcb1a9d10754
Remove extraneous eightbytes check for native structures and add tests. (#21590)

* Remove extraneous eightbytes check and add tests.

* Interger -> Integer

* Missed Helper.cs

* Handle field sizes larger than 8 bytes in AssignClassifiedEightByteTypes

* Move CoreFX test case into CoreCLR.  Fix the SystemV eightbyte classifier to correctly classify the second eightbyte when a single field crosses the eightbyte boundary (such as an in-place array of three 4-byte enums).

* Enable passing user defined structs in in-place arrays in a structure if SystemV ABI expects it.

* Correctly handle a field spanning two full eightbytes.

* Just directly assign 0 to accumulatedSizeForEightByte

* Change multi-eightbyte field handling to be a loop as per PR feedback.

* Remove extraneous whitespace.
src/vm/fieldmarshaler.h
src/vm/methodtable.cpp
tests/src/Interop/PInvoke/Array/MarshalArrayAsField/AsByValArray/AsByValArrayTest.cs
tests/src/Interop/PInvoke/Array/MarshalArrayAsField/LPArrayNative/MarshalArrayByValArrayNative.cpp
tests/src/Interop/StructMarshalling/PInvoke/Helper.cs
tests/src/Interop/StructMarshalling/PInvoke/MarshalStructAsLayoutSeq.cs
tests/src/Interop/StructMarshalling/PInvoke/MarshalStructAsParamDLL.cpp
tests/src/Interop/StructMarshalling/PInvoke/MarshalStructAsParamDLL.h
tests/src/Interop/StructMarshalling/PInvoke/Struct.cs