1 write to _contextPool
PresentationFramework (1)
MS\Internal\PtsHost\PtsCache.cs (1)
145_contextPool = new List<ContextDesc>(1);
60 references to _contextPool
PresentationFramework (60)
MS\Internal\PtsHost\PtsCache.cs (60)
182for (index = 0; index < _contextPool.Count; index++) 184if (!_contextPool[index].InUse && 185_contextPool[index].IsOptimalParagraphEnabled == ptsContext.IsOptimalParagraphEnabled) 193if (index == _contextPool.Count) 195_contextPool.Add(new ContextDesc()); 196_contextPool[index].IsOptimalParagraphEnabled = ptsContext.IsOptimalParagraphEnabled; 197_contextPool[index].PtsHost = new PtsHost(); 198_contextPool[index].PtsHost.Context = CreatePTSContext(index, textFormattingMode); 204if (_contextPool[index].IsOptimalParagraphEnabled) 206ptsContext.TextFormatter = _contextPool[index].TextFormatter; 210_contextPool[index].InUse = true; 211_contextPool[index].Owner = new WeakReference(ptsContext); 213return _contextPool[index].PtsHost; 251for (index = 0; index < _contextPool.Count; index++) 253if (_contextPool[index].PtsHost == ptsHost) 258Invariant.Assert(index < _contextPool.Count, "Cannot find matching PtsHost in the Context pool."); 259PTS.Validate(PTS.GetFloaterHandlerInfo(ref _contextPool[index].FloaterInit, pobjectinfo)); 270for (index = 0; index < _contextPool.Count; index++) 272if (_contextPool[index].PtsHost == ptsHost) 277Invariant.Assert(index < _contextPool.Count, "Cannot find matching PtsHost in the context pool."); 278PTS.Validate(PTS.GetTableObjHandlerInfo(ref _contextPool[index].TableobjInit, pobjectinfo)); 311while (index < _contextPool.Count) 313PtsContext ptsContext = _contextPool[index].Owner.Target as PtsContext; 316Invariant.Assert(_contextPool[index].PtsHost.Context == ptsContext.Context, "PTS Context mismatch."); 317_contextPool[index].Owner = new WeakReference(null); 318_contextPool[index].InUse = false; 324if (!_contextPool[index].InUse) 329Invariant.Assert(_contextPool[index].PtsHost.Context != IntPtr.Zero, "PTS Context handle is not valid."); 330PTS.IgnoreError(PTS.DestroyDocContext(_contextPool[index].PtsHost.Context)); 331Invariant.Assert(_contextPool[index].InstalledObjects != IntPtr.Zero, "Installed Objects handle is not valid."); 332PTS.IgnoreError(PTS.DestroyInstalledObjectsInfo(_contextPool[index].InstalledObjects)); 335_contextPool[index].TextPenaltyModule?.Dispose(); 337_contextPool.RemoveAt(index); 373for (index = 0; index < _contextPool.Count; index++) 375if (_contextPool[index].PtsHost.Context == ptsContext.Context) 377_contextPool[index].Owner = new WeakReference(null); 378_contextPool[index].InUse = false; 382Invariant.Assert(index < _contextPool.Count, "PtsContext not found in the context pool."); 393if (cleanContextPool && _contextPool.Count > 4) 397while (index < _contextPool.Count) 399if (!_contextPool[index].InUse) 401Invariant.Assert(_contextPool[index].PtsHost.Context != IntPtr.Zero, "PTS Context handle is not valid."); 402PTS.Validate(PTS.DestroyDocContext(_contextPool[index].PtsHost.Context)); 403Invariant.Assert(_contextPool[index].InstalledObjects != IntPtr.Zero, "Installed Objects handle is not valid."); 404PTS.Validate(PTS.DestroyInstalledObjectsInfo(_contextPool[index].InstalledObjects)); 407_contextPool[index].TextPenaltyModule?.Dispose(); 408_contextPool.RemoveAt(index); 429ptsHost = _contextPool[index].PtsHost; 433InitInstalledObjectsInfo(ptsHost, ref _contextPool[index].SubtrackParaInfo, ref _contextPool[index].SubpageParaInfo, out installedObjects, out installedObjectsCount); 434_contextPool[index].InstalledObjects = installedObjects; 437InitGenericInfo(ptsHost, (IntPtr)(index + 1), installedObjects, installedObjectsCount, ref _contextPool[index].ContextInfo); 440InitFloaterObjInfo(ptsHost, ref _contextPool[index].FloaterInit); 441InitTableObjInfo(ptsHost, ref _contextPool[index].TableobjInit); 444if (_contextPool[index].IsOptimalParagraphEnabled) 450_contextPool[index].TextPenaltyModule = penaltyModule; 451_contextPool[index].ContextInfo.ptsPenaltyModule = ptsPenaltyModule; 452_contextPool[index].TextFormatter = TextFormatter.CreateFromContext(textFormatterContext, textFormattingMode); 458GC.SuppressFinalize(_contextPool[index].TextPenaltyModule); 462PTS.Validate(PTS.CreateDocContext(ref _contextPool[index].ContextInfo, out context));