internal void RecordChanged(int[] oldIndex, int[] newIndex)
{
SetShadowIndexes();
Debug.Assert(oldIndex.Length == newIndex.Length, "Size oldIndexes and newIndexes should be the same");
Debug.Assert(oldIndex.Length == _shadowIndexes.Count, "Size of OldIndexes should be the same as size of Live indexes");
try
{
int numIndexes = _shadowIndexes.Count;
for (int i = 0; i < numIndexes; i++)
{
Index ndx = _shadowIndexes[i];// shadowindexes may change, see ShadowIndexCopy()
if (0 < ndx.RefCount)
{
ndx.RecordChanged(oldIndex[i], newIndex[i]);
}
}
}
finally
{
RestoreShadowIndexes();
}
}