diff --git a/src/vm/mlinfo.cpp b/src/vm/mlinfo.cpp index 493524398d19..5151be22caf5 100644 --- a/src/vm/mlinfo.cpp +++ b/src/vm/mlinfo.cpp @@ -1815,6 +1815,7 @@ MarshalInfo::MarshalInfo(Module* pModule, break; case ELEMENT_TYPE_I1: + case ELEMENT_TYPE_U1: if (!(nativeType == NATIVE_TYPE_I1 || nativeType == NATIVE_TYPE_U1 || nativeType == NATIVE_TYPE_DEFAULT)) { m_resID = IDS_EE_BADMARSHAL_I1; @@ -1823,16 +1824,8 @@ MarshalInfo::MarshalInfo(Module* pModule, m_type = MARSHAL_TYPE_GENERIC_1; break; - case ELEMENT_TYPE_U1: - if (!(nativeType == NATIVE_TYPE_U1 || nativeType == NATIVE_TYPE_I1 || nativeType == NATIVE_TYPE_DEFAULT)) - { - m_resID = IDS_EE_BADMARSHAL_I1; - IfFailGoto(E_FAIL, lFail); - } - m_type = MARSHAL_TYPE_GENERIC_U1; - break; - case ELEMENT_TYPE_I2: + case ELEMENT_TYPE_U2: if (!(nativeType == NATIVE_TYPE_I2 || nativeType == NATIVE_TYPE_U2 || nativeType == NATIVE_TYPE_DEFAULT)) { m_resID = IDS_EE_BADMARSHAL_I2; @@ -1841,16 +1834,8 @@ MarshalInfo::MarshalInfo(Module* pModule, m_type = MARSHAL_TYPE_GENERIC_2; break; - case ELEMENT_TYPE_U2: - if (!(nativeType == NATIVE_TYPE_U2 || nativeType == NATIVE_TYPE_I2 || nativeType == NATIVE_TYPE_DEFAULT)) - { - m_resID = IDS_EE_BADMARSHAL_I2; - IfFailGoto(E_FAIL, lFail); - } - m_type = MARSHAL_TYPE_GENERIC_U2; - break; - case ELEMENT_TYPE_I4: + case ELEMENT_TYPE_U4: switch (nativeType) { case NATIVE_TYPE_I4: @@ -1871,38 +1856,9 @@ MarshalInfo::MarshalInfo(Module* pModule, m_type = MARSHAL_TYPE_GENERIC_4; break; - case ELEMENT_TYPE_U4: - switch (nativeType) - { - case NATIVE_TYPE_I4: - case NATIVE_TYPE_U4: - case NATIVE_TYPE_DEFAULT: - break; - -#ifdef FEATURE_COMINTEROP - case NATIVE_TYPE_ERROR: - m_fErrorNativeType = TRUE; - break; -#endif // FEATURE_COMINTEROP - - default: - m_resID = IDS_EE_BADMARSHAL_I4; - IfFailGoto(E_FAIL, lFail); - } - m_type = MARSHAL_TYPE_GENERIC_4; - break; - case ELEMENT_TYPE_I8: - if (!(nativeType == NATIVE_TYPE_I8 || nativeType == NATIVE_TYPE_U8 || nativeType == NATIVE_TYPE_DEFAULT)) - { - m_resID = IDS_EE_BADMARSHAL_I8; - IfFailGoto(E_FAIL, lFail); - } - m_type = MARSHAL_TYPE_GENERIC_8; - break; - case ELEMENT_TYPE_U8: - if (!(nativeType == NATIVE_TYPE_U8 || nativeType == NATIVE_TYPE_I8 || nativeType == NATIVE_TYPE_DEFAULT)) + if (!(nativeType == NATIVE_TYPE_I8 || nativeType == NATIVE_TYPE_U8 || nativeType == NATIVE_TYPE_DEFAULT)) { m_resID = IDS_EE_BADMARSHAL_I8; IfFailGoto(E_FAIL, lFail); @@ -1911,6 +1867,7 @@ MarshalInfo::MarshalInfo(Module* pModule, break; case ELEMENT_TYPE_I: + case ELEMENT_TYPE_U: // 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. @@ -1923,17 +1880,6 @@ MarshalInfo::MarshalInfo(Module* pModule, m_type = (sizeof(LPVOID) == 4 ? MARSHAL_TYPE_GENERIC_4 : MARSHAL_TYPE_GENERIC_8); break; - case ELEMENT_TYPE_U: - - if (!(nativeType == NATIVE_TYPE_UINT || nativeType == NATIVE_TYPE_INT || nativeType == NATIVE_TYPE_DEFAULT)) - { - m_resID = IDS_EE_BADMARSHAL_I; - IfFailGoto(E_FAIL, lFail); - } - m_type = (sizeof(LPVOID) == 4 ? MARSHAL_TYPE_GENERIC_4 : MARSHAL_TYPE_GENERIC_8); - break; - - case ELEMENT_TYPE_R4: if (!(nativeType == NATIVE_TYPE_R4 || nativeType == NATIVE_TYPE_DEFAULT)) {