File tree Expand file tree Collapse file tree 2 files changed +13
-14
lines changed Expand file tree Collapse file tree 2 files changed +13
-14
lines changed Original file line number Diff line number Diff line change @@ -349,21 +349,12 @@ HRESULT CLR_RT_HeapBlock::SetObjectCls(const CLR_RT_TypeDef_Index &cls)
349349 NANOCLR_NOCLEANUP ();
350350}
351351
352- HRESULT CLR_RT_HeapBlock::SetGenericInstanceObject (const CLR_RT_TypeSpec_Index &genericType)
352+ HRESULT CLR_RT_HeapBlock::SetGenericInstanceType (const CLR_RT_TypeSpec_Index &genericType)
353353{
354354 NATIVE_PROFILE_CLR_CORE ();
355355 NANOCLR_HEADER ();
356356
357- CLR_RT_TypeSpec_Instance instance;
358-
359- if (instance.InitializeFromIndex (genericType) == false )
360- {
361- NANOCLR_SET_AND_LEAVE (CLR_E_FAIL);
362- }
363-
364- m_data.genericInstance .genericType = genericType;
365- m_data.genericInstance .ptr = nullptr ;
366- m_id.raw = CLR_RT_HEAPBLOCK_RAW_ID (DATATYPE_GENERICINST, 0 , 1 );
357+ m_data.reflection .data .genericType = genericType;
367358
368359 NANOCLR_NOCLEANUP ();
369360}
Original file line number Diff line number Diff line change @@ -114,7 +114,7 @@ struct CLR_RT_HeapBlock
114114 static const CLR_UINT32 HB_Event = 0x04 ;
115115 static const CLR_UINT32 HB_Pinned = 0x08 ;
116116 static const CLR_UINT32 HB_Boxed = 0x10 ;
117- static const CLR_UINT32 HB_Unused20 = 0x20 ;
117+ static const CLR_UINT32 HB_GenericInstance = 0x20 ;
118118 // If more bits are needed, HB_Signaled and HB_SignalAutoReset can be freed for use with a little work.
119119 // It is not necessary that any heapblock can be waited upon. Currently, only Threads (Thread.Join),
120120 // ManualResetEvent, and AutoResetEvent are waitable objects.
@@ -1192,10 +1192,18 @@ struct CLR_RT_HeapBlock
11921192
11931193 const CLR_RT_TypeSpec_Index &ObjectGenericType () const
11941194 {
1195- return m_data.genericInstance .genericType ;
1195+ if ((m_id.type .flags & CLR_RT_HeapBlock::HB_GenericInstance) == CLR_RT_HeapBlock::HB_GenericInstance)
1196+ {
1197+ return m_data.reflection .data .genericType ;
1198+ }
1199+ else
1200+ {
1201+ // Invalid index
1202+ return (CLR_RT_TypeSpec_Index)0x0 ;
1203+ }
11961204 }
11971205
1198- HRESULT SetGenericInstanceObject (const CLR_RT_TypeSpec_Index &genericType);
1206+ HRESULT SetGenericInstanceType (const CLR_RT_TypeSpec_Index &genericType);
11991207
12001208 // --//
12011209
You can’t perform that action at this time.
0 commit comments