예제 #1
0
파일: eetype.cpp 프로젝트: noahfalk/corert
//-----------------------------------------------------------------------------------------------------------
EEType * EEType::get_CanonicalEEType()
{
	// cloned EETypes must always refer to types in other modules
	ASSERT(IsCloned());
	ASSERT(IsRelatedTypeViaIAT());

	return *PTR_PTR_EEType(reinterpret_cast<TADDR>(m_RelatedType.m_ppCanonicalTypeViaIAT));
}
예제 #2
0
파일: eetype.cpp 프로젝트: A-And/corert
//-----------------------------------------------------------------------------------------------------------
EEType * EEType::get_RelatedParameterType()
{
	ASSERT(IsParameterizedType());

	if (IsRelatedTypeViaIAT())
		return *PTR_PTR_EEType(reinterpret_cast<TADDR>(m_RelatedType.m_ppRelatedParameterTypeViaIAT));
	else
		return PTR_EEType(reinterpret_cast<TADDR>(m_RelatedType.m_pRelatedParameterType));
}
예제 #3
0
파일: eetype.cpp 프로젝트: A-And/corert
//-----------------------------------------------------------------------------------------------------------
EEType * EEType::get_CanonicalEEType()
{
	// cloned EETypes must always refer to types in other modules
	ASSERT(IsCloned());
    if (IsRelatedTypeViaIAT())
        return *PTR_PTR_EEType(reinterpret_cast<TADDR>(m_RelatedType.m_ppCanonicalTypeViaIAT));
    else
        return PTR_EEType(reinterpret_cast<TADDR>(m_RelatedType.m_pCanonicalType)); // in the R2R case, the link is direct rather than indirect via the IAT
}