summaryrefslogtreecommitdiff
path: root/src/vm/comtoclrcall.cpp
diff options
context:
space:
mode:
authorJeremy Koritzinsky <jkoritzinsky@gmail.com>2019-04-05 12:52:00 -0700
committerGitHub <noreply@github.com>2019-04-05 12:52:00 -0700
commit04f97c9923156b0c695f5fe441ffd14624de8076 (patch)
tree39dabb413ee77c1fc50b6b5f22f392a9f7d0e362 /src/vm/comtoclrcall.cpp
parent8d51f4253996baf64fca1c57c421fb42ac5762cd (diff)
downloadcoreclr-04f97c9923156b0c695f5fe441ffd14624de8076.tar.gz
coreclr-04f97c9923156b0c695f5fe441ffd14624de8076.tar.bz2
coreclr-04f97c9923156b0c695f5fe441ffd14624de8076.zip
Enable return buffers on Windows ARM64 for struct-returning member functions (#23625)
* Enable return buffers on Windows ARM64 for struct-returning member functions. Fixes #23577. * Update comment to match new condition. * Enable byref return on all Windows (excluding arm64 HFA. Add more test cases for ThisCall. * On x86, if we have a normalized return value in an instance method, get back the actual type so that we correctly marshal it via a return buffer. * Fix param ordering. * Clean up based on PR feedback. * Fix accidental variable shadowing.
Diffstat (limited to 'src/vm/comtoclrcall.cpp')
-rw-r--r--src/vm/comtoclrcall.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/vm/comtoclrcall.cpp b/src/vm/comtoclrcall.cpp
index 98391b9883..89ef5893cf 100644
--- a/src/vm/comtoclrcall.cpp
+++ b/src/vm/comtoclrcall.cpp
@@ -1149,7 +1149,7 @@ void ComCallMethodDesc::InitNativeInfo()
MarshalInfo info(fsig.GetModule(), fsig.GetArgProps(), fsig.GetSigTypeContext(), pFD->GetMemberDef(), MarshalInfo::MARSHAL_SCENARIO_COMINTEROP,
(CorNativeLinkType)0, (CorNativeLinkFlags)0,
- FALSE, 0, fsig.NumFixedArgs(), BestFit, ThrowOnUnmappableChar, FALSE, NULL, FALSE
+ FALSE, 0, fsig.NumFixedArgs(), BestFit, ThrowOnUnmappableChar, FALSE, TRUE, NULL, FALSE
#ifdef _DEBUG
, szDebugName, szDebugClassName, 0
#endif
@@ -1255,7 +1255,7 @@ void ComCallMethodDesc::InitNativeInfo()
MarshalInfo info(msig.GetModule(), msig.GetArgProps(), msig.GetSigTypeContext(), params[iArg],
WinRTType ? MarshalInfo::MARSHAL_SCENARIO_WINRT : MarshalInfo::MARSHAL_SCENARIO_COMINTEROP,
(CorNativeLinkType)0, (CorNativeLinkFlags)0,
- TRUE, iArg, numArgs, BestFit, ThrowOnUnmappableChar, FALSE, pMD, FALSE
+ TRUE, iArg, numArgs, BestFit, ThrowOnUnmappableChar, FALSE, TRUE, pMD, FALSE
#ifdef _DEBUG
, szDebugName, szDebugClassName, iArg
#endif
@@ -1317,7 +1317,7 @@ void ComCallMethodDesc::InitNativeInfo()
MarshalInfo info(msig.GetModule(), msig.GetReturnProps(), msig.GetSigTypeContext(), params[0],
WinRTType ? MarshalInfo::MARSHAL_SCENARIO_WINRT : MarshalInfo::MARSHAL_SCENARIO_COMINTEROP,
(CorNativeLinkType)0, (CorNativeLinkFlags)0,
- FALSE, 0, numArgs, BestFit, ThrowOnUnmappableChar, FALSE, pMD, FALSE
+ FALSE, 0, numArgs, BestFit, ThrowOnUnmappableChar, FALSE, TRUE, pMD, FALSE
#ifdef _DEBUG
,szDebugName, szDebugClassName, 0
#endif