//----------------------------------------------------------------------------------------------------------- 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)); }
//----------------------------------------------------------------------------------------------------------- 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)); }
//----------------------------------------------------------------------------------------------------------- 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 }