public void Clean(ulong guestAddress) { if (Owners.TryGetValue(guestAddress, out List <int> entries)) { foreach (int entry in entries) { if ((entry & JumpTable.DynamicEntryTag) == 0) { int removed = _jumpTable.RemoveAll(tableEntry => tableEntry.EntryIndex == entry); Debug.Assert(removed == 1); } else { if (JumpTable.DynamicTableElems > 1) { throw new NotSupportedException(); } int removed = _dynamicTable.RemoveAll(tableEntry => tableEntry.EntryIndex == (entry & ~JumpTable.DynamicEntryTag)); Debug.Assert(removed == 1); } } } Targets.Remove(guestAddress); Dependants.Remove(guestAddress); Owners.Remove(guestAddress); }
public void RemoveDependant(string name) { Dependants.Remove(name); }