summaryrefslogtreecommitdiff
path: root/src/vm/class.cpp
diff options
context:
space:
mode:
authorBruce Forstall <brucefo@microsoft.com>2017-09-27 14:42:04 -0700
committerBruce Forstall <brucefo@microsoft.com>2017-09-27 14:42:04 -0700
commit83124c7aaf7f4236e24f4c4fde3863f1736f7d47 (patch)
treecb7b80fb454bf721d60797ab797c7a3111adbf0a /src/vm/class.cpp
parent296aaf12b40ddd7478b6a14d6099f48b4b049438 (diff)
downloadcoreclr-83124c7aaf7f4236e24f4c4fde3863f1736f7d47.tar.gz
coreclr-83124c7aaf7f4236e24f4c4fde3863f1736f7d47.tar.bz2
coreclr-83124c7aaf7f4236e24f4c4fde3863f1736f7d47.zip
Fix issue with HFA altjit api
One case in the Interop\ArrayMarshalling\ByValArray\MarshalArrayByValTest\MarshalArrayByValTest.cmd test marshals an array of strings as members of a struct. The !FEATURE_HFA code for IsHFA() needs to check for value type before calling CheckForHFA(), which will assert if it is not a value type. Fixes #14196.
Diffstat (limited to 'src/vm/class.cpp')
-rw-r--r--src/vm/class.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/vm/class.cpp b/src/vm/class.cpp
index e4268b57ec..9d82f775dc 100644
--- a/src/vm/class.cpp
+++ b/src/vm/class.cpp
@@ -1641,7 +1641,14 @@ bool MethodTable::IsHFA()
#ifdef DACCESS_COMPILE
return false;
#else
- return GetClass()->CheckForHFA();
+ if (GetClass()->GetMethodTable()->IsValueType())
+ {
+ return GetClass()->CheckForHFA();
+ }
+ else
+ {
+ return false;
+ }
#endif
}
#endif // !FEATURE_HFA