public void AddToList(IntPtr sourceTypeHandle, string name, Fasterflect.MemberGetter memberGetter) { //Add an item to the list replacing the eldest item m_SourceTypeHandle[m_OldestItemInList] = sourceTypeHandle; m_Name[m_OldestItemInList] = name; m_MemberGetter[m_OldestItemInList] = memberGetter; m_OldestItemInList++; if (m_OldestItemInList > m_ListSize - 1) { m_OldestItemInList = 0; } }
public void GetFromList(IntPtr sourceTypeHandle, string name, out Fasterflect.MemberGetter memberGetter) { //Search for the item starting at the youngest item in the list for (int i = m_OldestItemInList - 1; i >= 0; i--) { if (m_SourceTypeHandle[i] == sourceTypeHandle && m_Name[i] == name) { memberGetter = m_MemberGetter[i]; return; } } for (int i = m_ListSize - 1; i >= m_OldestItemInList; i--) { if (m_SourceTypeHandle[i] == sourceTypeHandle && m_Name[i] == name) { memberGetter = m_MemberGetter[i]; return; } } memberGetter = null; }