summaryrefslogtreecommitdiff
path: root/src/vm/mlinfo.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/vm/mlinfo.cpp')
-rw-r--r--src/vm/mlinfo.cpp17
1 files changed, 3 insertions, 14 deletions
diff --git a/src/vm/mlinfo.cpp b/src/vm/mlinfo.cpp
index edbf759322..f861c43cf8 100644
--- a/src/vm/mlinfo.cpp
+++ b/src/vm/mlinfo.cpp
@@ -1875,13 +1875,9 @@ MarshalInfo::MarshalInfo(Module* pModule,
break;
case ELEMENT_TYPE_I:
-#ifdef FEATURE_COMINTEROP
- if (IsWinRTScenario())
- {
- m_resID = IDS_EE_BADMARSHAL_WINRT_ILLEGAL_TYPE;
- IfFailGoto(E_FAIL, lFail);
- }
-#endif // FEATURE_COMINTEROP
+ // Technically the "native int" and "native uint" types aren't supported in the WinRT scenario,
+ // but we need to not block ourselves from using them to enable accurate managed->native marshalling of
+ // projected types such as NotifyCollectionChangedEventArgs and NotifyPropertyChangedEventArgs.
if (!(nativeType == NATIVE_TYPE_INT || nativeType == NATIVE_TYPE_UINT || nativeType == NATIVE_TYPE_DEFAULT))
{
@@ -1892,13 +1888,6 @@ MarshalInfo::MarshalInfo(Module* pModule,
break;
case ELEMENT_TYPE_U:
-#ifdef FEATURE_COMINTEROP
- if (IsWinRTScenario())
- {
- m_resID = IDS_EE_BADMARSHAL_WINRT_ILLEGAL_TYPE;
- IfFailGoto(E_FAIL, lFail);
- }
-#endif // FEATURE_COMINTEROP
if (!(nativeType == NATIVE_TYPE_UINT || nativeType == NATIVE_TYPE_INT || nativeType == NATIVE_TYPE_DEFAULT))
{