public int MapInCapability(Thread current, Capability cap) { int id; if (cap.parent == current) { id = cap.Uses.id; cap.Uses.InsertAfter(Capabilities); } else { id = NewCapAllocId(); var cap_ref = new CapabilityRef(current, id, cap); cap_ref.InsertAfter(Capabilities); } return id; }