Skip to content
This repository was archived by the owner on Jan 23, 2023. It is now read-only.

Commit e73b78a

Browse files
committed
Collapse common primitive marshalling cases together.
1 parent 3972294 commit e73b78a

File tree

1 file changed

+5
-59
lines changed

1 file changed

+5
-59
lines changed

src/vm/mlinfo.cpp

Lines changed: 5 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1815,6 +1815,7 @@ MarshalInfo::MarshalInfo(Module* pModule,
18151815
break;
18161816

18171817
case ELEMENT_TYPE_I1:
1818+
case ELEMENT_TYPE_U1:
18181819
if (!(nativeType == NATIVE_TYPE_I1 || nativeType == NATIVE_TYPE_U1 || nativeType == NATIVE_TYPE_DEFAULT))
18191820
{
18201821
m_resID = IDS_EE_BADMARSHAL_I1;
@@ -1823,16 +1824,8 @@ MarshalInfo::MarshalInfo(Module* pModule,
18231824
m_type = MARSHAL_TYPE_GENERIC_1;
18241825
break;
18251826

1826-
case ELEMENT_TYPE_U1:
1827-
if (!(nativeType == NATIVE_TYPE_U1 || nativeType == NATIVE_TYPE_I1 || nativeType == NATIVE_TYPE_DEFAULT))
1828-
{
1829-
m_resID = IDS_EE_BADMARSHAL_I1;
1830-
IfFailGoto(E_FAIL, lFail);
1831-
}
1832-
m_type = MARSHAL_TYPE_GENERIC_U1;
1833-
break;
1834-
18351827
case ELEMENT_TYPE_I2:
1828+
case ELEMENT_TYPE_U2:
18361829
if (!(nativeType == NATIVE_TYPE_I2 || nativeType == NATIVE_TYPE_U2 || nativeType == NATIVE_TYPE_DEFAULT))
18371830
{
18381831
m_resID = IDS_EE_BADMARSHAL_I2;
@@ -1841,16 +1834,8 @@ MarshalInfo::MarshalInfo(Module* pModule,
18411834
m_type = MARSHAL_TYPE_GENERIC_2;
18421835
break;
18431836

1844-
case ELEMENT_TYPE_U2:
1845-
if (!(nativeType == NATIVE_TYPE_U2 || nativeType == NATIVE_TYPE_I2 || nativeType == NATIVE_TYPE_DEFAULT))
1846-
{
1847-
m_resID = IDS_EE_BADMARSHAL_I2;
1848-
IfFailGoto(E_FAIL, lFail);
1849-
}
1850-
m_type = MARSHAL_TYPE_GENERIC_U2;
1851-
break;
1852-
18531837
case ELEMENT_TYPE_I4:
1838+
case ELEMENT_TYPE_U4:
18541839
switch (nativeType)
18551840
{
18561841
case NATIVE_TYPE_I4:
@@ -1871,38 +1856,9 @@ MarshalInfo::MarshalInfo(Module* pModule,
18711856
m_type = MARSHAL_TYPE_GENERIC_4;
18721857
break;
18731858

1874-
case ELEMENT_TYPE_U4:
1875-
switch (nativeType)
1876-
{
1877-
case NATIVE_TYPE_I4:
1878-
case NATIVE_TYPE_U4:
1879-
case NATIVE_TYPE_DEFAULT:
1880-
break;
1881-
1882-
#ifdef FEATURE_COMINTEROP
1883-
case NATIVE_TYPE_ERROR:
1884-
m_fErrorNativeType = TRUE;
1885-
break;
1886-
#endif // FEATURE_COMINTEROP
1887-
1888-
default:
1889-
m_resID = IDS_EE_BADMARSHAL_I4;
1890-
IfFailGoto(E_FAIL, lFail);
1891-
}
1892-
m_type = MARSHAL_TYPE_GENERIC_4;
1893-
break;
1894-
18951859
case ELEMENT_TYPE_I8:
1896-
if (!(nativeType == NATIVE_TYPE_I8 || nativeType == NATIVE_TYPE_U8 || nativeType == NATIVE_TYPE_DEFAULT))
1897-
{
1898-
m_resID = IDS_EE_BADMARSHAL_I8;
1899-
IfFailGoto(E_FAIL, lFail);
1900-
}
1901-
m_type = MARSHAL_TYPE_GENERIC_8;
1902-
break;
1903-
19041860
case ELEMENT_TYPE_U8:
1905-
if (!(nativeType == NATIVE_TYPE_U8 || nativeType == NATIVE_TYPE_I8 || nativeType == NATIVE_TYPE_DEFAULT))
1861+
if (!(nativeType == NATIVE_TYPE_I8 || nativeType == NATIVE_TYPE_U8 || nativeType == NATIVE_TYPE_DEFAULT))
19061862
{
19071863
m_resID = IDS_EE_BADMARSHAL_I8;
19081864
IfFailGoto(E_FAIL, lFail);
@@ -1911,6 +1867,7 @@ MarshalInfo::MarshalInfo(Module* pModule,
19111867
break;
19121868

19131869
case ELEMENT_TYPE_I:
1870+
case ELEMENT_TYPE_U:
19141871
// Technically the "native int" and "native uint" types aren't supported in the WinRT scenario,
19151872
// but we need to not block ourselves from using them to enable accurate managed->native marshalling of
19161873
// projected types such as NotifyCollectionChangedEventArgs and NotifyPropertyChangedEventArgs.
@@ -1923,17 +1880,6 @@ MarshalInfo::MarshalInfo(Module* pModule,
19231880
m_type = (sizeof(LPVOID) == 4 ? MARSHAL_TYPE_GENERIC_4 : MARSHAL_TYPE_GENERIC_8);
19241881
break;
19251882

1926-
case ELEMENT_TYPE_U:
1927-
1928-
if (!(nativeType == NATIVE_TYPE_UINT || nativeType == NATIVE_TYPE_INT || nativeType == NATIVE_TYPE_DEFAULT))
1929-
{
1930-
m_resID = IDS_EE_BADMARSHAL_I;
1931-
IfFailGoto(E_FAIL, lFail);
1932-
}
1933-
m_type = (sizeof(LPVOID) == 4 ? MARSHAL_TYPE_GENERIC_4 : MARSHAL_TYPE_GENERIC_8);
1934-
break;
1935-
1936-
19371883
case ELEMENT_TYPE_R4:
19381884
if (!(nativeType == NATIVE_TYPE_R4 || nativeType == NATIVE_TYPE_DEFAULT))
19391885
{

0 commit comments

Comments
 (0)