Skip to content

Commit f5694b8

Browse files
committed
Replace SetGenericInstanceObject with SetGenericInstanceType
1 parent 6fb89fa commit f5694b8

File tree

2 files changed

+13
-14
lines changed

2 files changed

+13
-14
lines changed

src/CLR/Core/CLR_RT_HeapBlock.cpp

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff 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
}

src/CLR/Include/nanoCLR_Runtime__HeapBlock.h

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff 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

0 commit comments

Comments
 (0)