@@ -800,8 +800,11 @@ bool CLR_RT_TypeSpec_Instance::ResolveToken(
800800
801801 NanoCLRDataType realDataType;
802802
803- g_CLR_RT_TypeSystem.m_assemblies [caller->genericType ->Assembly () - 1 ]
804- ->FindGenericParamAtTypeSpec (closedTsRow, (CLR_UINT32)pos, cachedElementType, realDataType);
803+ g_CLR_RT_TypeSystem.m_assemblies [caller->genericType ->Assembly () - 1 ]->FindGenericParamAtTypeSpec (
804+ caller->genericType ->data ,
805+ (CLR_UINT32)pos,
806+ cachedElementType,
807+ realDataType);
805808 }
806809 else if (element.DataType == DATATYPE_MVAR)
807810 {
@@ -1156,16 +1159,17 @@ bool CLR_RT_TypeDef_Instance::ResolveToken(
11561159 return false ;
11571160 }
11581161
1159- auto &tsi = *caller->genericType ;
1160- CLR_UINT32 closedTsRow = tsi.TypeSpec ();
1161-
11621162 CLR_RT_TypeDef_Index realTypeDef;
11631163 NanoCLRDataType realDataType;
11641164
11651165 // Only call this once to map (e.g. !T→Int32)
11661166
11671167 g_CLR_RT_TypeSystem.m_assemblies [caller->genericType ->Assembly () - 1 ]
1168- ->FindGenericParamAtTypeSpec (closedTsRow, (CLR_UINT32)pos, realTypeDef, realDataType);
1168+ ->FindGenericParamAtTypeSpec (
1169+ caller->genericType ->data ,
1170+ (CLR_UINT32)pos,
1171+ realTypeDef,
1172+ realDataType);
11691173
11701174 // populate this instance
11711175 data = realTypeDef.data ;
@@ -1278,14 +1282,12 @@ bool CLR_RT_TypeDef_Instance::ResolveNullableType(
12781282 return false ;
12791283 }
12801284
1281- auto &tsi = *caller->genericType ;
1282- CLR_UINT32 closedTsRow = tsi.TypeSpec ();
1283-
12841285 CLR_RT_TypeDef_Index realTypeDef;
12851286 NanoCLRDataType realDataType;
12861287
12871288 // Only call this once to map (e.g. !T→Int32)
1288- caller->assembly ->FindGenericParamAtTypeSpec (closedTsRow, (CLR_UINT32)pos, realTypeDef, realDataType);
1289+ caller->assembly
1290+ ->FindGenericParamAtTypeSpec (caller->genericType ->data , (CLR_UINT32)pos, realTypeDef, realDataType);
12891291
12901292 // populate this instance
12911293 data = realTypeDef.data ;
@@ -1573,7 +1575,7 @@ bool CLR_RT_MethodDef_Instance::InitializeFromIndex(
15731575 CLR_RT_TypeDef_Index realOwner;
15741576 NanoCLRDataType dummyDT;
15751577
1576- if (!tsAsm->FindGenericParamAtTypeSpec (typeSpec.TypeSpec () , elem.GenericParamPosition , realOwner, dummyDT))
1578+ if (!tsAsm->FindGenericParamAtTypeSpec (typeSpec.data , elem.GenericParamPosition , realOwner, dummyDT))
15771579 {
15781580 return false ;
15791581 }
@@ -1877,7 +1879,7 @@ bool CLR_RT_MethodDef_Instance::GetDeclaringType(CLR_RT_TypeDef_Instance &declTy
18771879 CLR_RT_TypeDef_Index td;
18781880 NanoCLRDataType dt;
18791881 if (tsAsm == nullptr ||
1880- tsAsm->FindGenericParamAtTypeSpec (genericType->TypeSpec () , (CLR_UINT32)pos, td, dt) == false )
1882+ tsAsm->FindGenericParamAtTypeSpec (genericType->data , (CLR_UINT32)pos, td, dt) == false )
18811883 {
18821884 return false ;
18831885 }
@@ -2268,7 +2270,7 @@ HRESULT CLR_RT_TypeDescriptor::InitializeFromSignatureToken(
22682270 // !T: ask the CLR to map that slot into the *actual* argument
22692271 CLR_RT_TypeDef_Index td;
22702272 NanoCLRDataType dt;
2271- assm->FindGenericParamAtTypeSpec (caller->genericType ->TypeSpec () , elem.GenericParamPosition , td, dt);
2273+ assm->FindGenericParamAtTypeSpec (caller->genericType ->data , elem.GenericParamPosition , td, dt);
22722274 this ->InitializeFromTypeDef (td);
22732275 }
22742276 else if (elem.DataType == DATATYPE_MVAR)
@@ -5090,7 +5092,7 @@ bool CLR_RT_Assembly::FindGenericParamAtTypeSpec(
50905092 }
50915093
50925094 // sanity check for invalid parameter position
5093- if (genericParameterPosition > parser .GenParamCount )
5095+ if (genericParameterPosition > element .GenParamCount )
50945096 {
50955097 // not enough parameters!!
50965098 return false ;
@@ -6623,14 +6625,14 @@ HRESULT CLR_RT_TypeSystem::BuildTypeName(
66236625
66246626 BuildTypeName (typeDef, szBuffer, iBuffer);
66256627
6626- if (parser .GenParamCount > 0 )
6628+ if (element .GenParamCount > 0 )
66276629 {
66286630 NANOCLR_CHECK_HRESULT (QueueStringToBuffer (szBuffer, iBuffer, " <" ));
66296631
66306632 closeGenericSignature = true ;
66316633 }
66326634
6633- for (int i = 0 ; i < parser .GenParamCount ; i++)
6635+ for (int i = 0 ; i < element .GenParamCount ; i++)
66346636 {
66356637 // read the next element (should be either VAR, MVAR, or a concrete type)
66366638 parser.Advance (element);
@@ -6643,7 +6645,7 @@ HRESULT CLR_RT_TypeSystem::BuildTypeName(
66436645
66446646 // this will bind !T→System.Int32, etc.
66456647 typeSpecInstance.assembly ->FindGenericParamAtTypeSpec (
6646- typeIndex.TypeSpec (), // closed instantiation row
6648+ typeIndex.data ,
66476649 element.GenericParamPosition , // the !N slot
66486650 realTd,
66496651 realDt);
@@ -6660,7 +6662,7 @@ HRESULT CLR_RT_TypeSystem::BuildTypeName(
66606662 BuildTypeName (td, szBuffer, iBuffer);
66616663 }
66626664
6663- if (i + 1 < parser .GenParamCount )
6665+ if (i + 1 < element .GenParamCount )
66646666 {
66656667 NANOCLR_CHECK_HRESULT (QueueStringToBuffer (szBuffer, iBuffer, " ," ));
66666668 }
@@ -6895,7 +6897,7 @@ HRESULT CLR_RT_TypeSystem::BuildMethodRefName(const CLR_RT_MethodRef_Index &meth
68956897 CLR_SafeSprintf (szBuffer, iBuffer, c_CLR_RT_DataTypeLookup[element.DataType ].m_name );
68966898#endif
68976899
6898- if (i + 1 < parser .GenParamCount )
6900+ if (i + 1 < element .GenParamCount )
68996901 {
69006902 CLR_SafeSprintf (szBuffer, iBuffer, " ," );
69016903 }
@@ -6979,7 +6981,7 @@ HRESULT CLR_RT_TypeSystem::BuildMethodSpecName(const CLR_RT_MethodSpec_Index &ms
69796981 NANOCLR_CHECK_HRESULT (QueueStringToBuffer (szBuffer, iBuffer, c_CLR_RT_DataTypeLookup[element.DataType ].m_name ));
69806982#endif
69816983
6982- if (i + 1 < parser .GenParamCount )
6984+ if (i + 1 < element .GenParamCount )
69836985 {
69846986 NANOCLR_CHECK_HRESULT (QueueStringToBuffer (szBuffer, iBuffer, " ," ));
69856987 }
0 commit comments