/// <summary> /// Updates the aliases. /// </summary> private void updateAliases() { foreach (var item in MemoryAliases) { MemoryIndex targetIndex = item.Key; MemoryAliasInfo aliasInfo = item.Value; if (!aliasInfo.IsTargetOfMerge) { IMemoryAlias currentAliases; if (writeableTargetStructure.TryGetAliases(targetIndex, out currentAliases)) { aliasInfo.Aliases.MayAliases.AddAll(currentAliases.MayAliases); aliasInfo.Aliases.MustAliases.AddAll(currentAliases.MustAliases); } } foreach (MemoryIndex alias in aliasInfo.RemovedAliases) { aliasInfo.Aliases.MustAliases.Remove(alias); aliasInfo.Aliases.MayAliases.Remove(alias); } writeableTargetStructure.SetAlias(targetIndex, aliasInfo.Aliases.Build(writeableTargetStructure)); } }