/// <summary> /// Writes the memory normal. /// </summary> /// <param name="snapshot">The snapshot.</param> /// <param name="value">The value.</param> /// <param name="forceStrongWrite">if set to <c>true</c> [force strong write].</param> private void writeMemoryNormal(Snapshot snapshot, MemoryEntry value, bool forceStrongWrite) { TemporaryIndex temporaryIndex = snapshot.CreateTemporary(); MergeWithinSnapshotWorker mergeWorker = new MergeWithinSnapshotWorker(snapshot); mergeWorker.MergeMemoryEntry(temporaryIndex, value); AssignCollector collector = new AssignCollector(snapshot); collector.ProcessPath(path); if (forceStrongWrite) { collector.SetAllToMust(); } AssignWorker worker = new AssignWorker(snapshot); worker.Assign(collector, temporaryIndex); snapshot.ReleaseTemporary(temporaryIndex); }
/// <summary> /// Assigns the alias. /// </summary> /// <param name="collector">The collector.</param> /// <param name="data">The data.</param> internal void AssignAlias(IIndexCollector collector, AliasData data) { assignWorker.Assign(collector, data.SourceIndex); makeAliases(collector, data); }