internal void AddDiff(RenderTreeDiff diff) { var componentId = diff.ComponentId; if (!DiffsByComponentId.ContainsKey(componentId)) { DiffsByComponentId.Add(componentId, new List <RenderTreeDiff>()); } DiffsByComponentId[componentId].Add(diff); }
internal void AddDiff(RenderTreeDiff diff) { var componentId = diff.ComponentId; if (!DiffsByComponentId.ContainsKey(componentId)) { DiffsByComponentId.Add(componentId, new List <RenderTreeDiff>()); } // Clone the diff, because its underlying storage will get reused in subsequent batches DiffsByComponentId[componentId].Add(new RenderTreeDiff( diff.ComponentId, new ArraySegment <RenderTreeEdit>(diff.Edits.ToArray()))); }
internal void AddDiff(RenderTreeDiff diff) { var componentId = diff.ComponentId; if (!DiffsByComponentId.ContainsKey(componentId)) { DiffsByComponentId.Add(componentId, new List <CapturedRenderTreeDiff>()); } var renderTreeEdits = diff.Edits.ToArray(); var capturedTreeDiff = new CapturedRenderTreeDiff(diff.ComponentId, renderTreeEdits); DiffsByComponentId[componentId].Add(capturedTreeDiff); DiffsInOrder.Add(capturedTreeDiff); }
internal void AddDiff(RenderTreeDiff diff) { var componentId = diff.ComponentId; if (!DiffsByComponentId.ContainsKey(componentId)) { DiffsByComponentId.Add(componentId, new List <RenderTreeDiff>()); } // Clone the diff, because its underlying storage will get reused in subsequent batches var cloneBuilder = new ArrayBuilder <RenderTreeEdit>(); cloneBuilder.Append(diff.Edits.ToArray(), 0, diff.Edits.Count); var diffClone = new RenderTreeDiff( diff.ComponentId, cloneBuilder.ToSegment(0, diff.Edits.Count)); DiffsByComponentId[componentId].Add(diffClone); DiffsInOrder.Add(diffClone); }