1 write to _contextPool
PresentationFramework (1)
MS\Internal\PtsHost\PtsCache.cs (1)
146_contextPool = new List<ContextDesc>(1);
60 references to _contextPool
PresentationFramework (60)
MS\Internal\PtsHost\PtsCache.cs (60)
183for (index = 0; index < _contextPool.Count; index++) 185if (!_contextPool[index].InUse && 186_contextPool[index].IsOptimalParagraphEnabled == ptsContext.IsOptimalParagraphEnabled) 194if (index == _contextPool.Count) 196_contextPool.Add(new ContextDesc()); 197_contextPool[index].IsOptimalParagraphEnabled = ptsContext.IsOptimalParagraphEnabled; 198_contextPool[index].PtsHost = new PtsHost(); 199_contextPool[index].PtsHost.Context = CreatePTSContext(index, textFormattingMode); 205if (_contextPool[index].IsOptimalParagraphEnabled) 207ptsContext.TextFormatter = _contextPool[index].TextFormatter; 211_contextPool[index].InUse = true; 212_contextPool[index].Owner = new WeakReference(ptsContext); 214return _contextPool[index].PtsHost; 252for (index = 0; index < _contextPool.Count; index++) 254if (_contextPool[index].PtsHost == ptsHost) 259Invariant.Assert(index < _contextPool.Count, "Cannot find matching PtsHost in the Context pool."); 260PTS.Validate(PTS.GetFloaterHandlerInfo(ref _contextPool[index].FloaterInit, pobjectinfo)); 271for (index = 0; index < _contextPool.Count; index++) 273if (_contextPool[index].PtsHost == ptsHost) 278Invariant.Assert(index < _contextPool.Count, "Cannot find matching PtsHost in the context pool."); 279PTS.Validate(PTS.GetTableObjHandlerInfo(ref _contextPool[index].TableobjInit, pobjectinfo)); 312while (index < _contextPool.Count) 314PtsContext ptsContext = _contextPool[index].Owner.Target as PtsContext; 317Invariant.Assert(_contextPool[index].PtsHost.Context == ptsContext.Context, "PTS Context mismatch."); 318_contextPool[index].Owner = new WeakReference(null); 319_contextPool[index].InUse = false; 325if (!_contextPool[index].InUse) 330Invariant.Assert(_contextPool[index].PtsHost.Context != IntPtr.Zero, "PTS Context handle is not valid."); 331PTS.IgnoreError(PTS.DestroyDocContext(_contextPool[index].PtsHost.Context)); 332Invariant.Assert(_contextPool[index].InstalledObjects != IntPtr.Zero, "Installed Objects handle is not valid."); 333PTS.IgnoreError(PTS.DestroyInstalledObjectsInfo(_contextPool[index].InstalledObjects)); 336_contextPool[index].TextPenaltyModule?.Dispose(); 338_contextPool.RemoveAt(index); 374for (index = 0; index < _contextPool.Count; index++) 376if (_contextPool[index].PtsHost.Context == ptsContext.Context) 378_contextPool[index].Owner = new WeakReference(null); 379_contextPool[index].InUse = false; 383Invariant.Assert(index < _contextPool.Count, "PtsContext not found in the context pool."); 394if (cleanContextPool && _contextPool.Count > 4) 398while (index < _contextPool.Count) 400if (!_contextPool[index].InUse) 402Invariant.Assert(_contextPool[index].PtsHost.Context != IntPtr.Zero, "PTS Context handle is not valid."); 403PTS.Validate(PTS.DestroyDocContext(_contextPool[index].PtsHost.Context)); 404Invariant.Assert(_contextPool[index].InstalledObjects != IntPtr.Zero, "Installed Objects handle is not valid."); 405PTS.Validate(PTS.DestroyInstalledObjectsInfo(_contextPool[index].InstalledObjects)); 408_contextPool[index].TextPenaltyModule?.Dispose(); 409_contextPool.RemoveAt(index); 430ptsHost = _contextPool[index].PtsHost; 434InitInstalledObjectsInfo(ptsHost, ref _contextPool[index].SubtrackParaInfo, ref _contextPool[index].SubpageParaInfo, out installedObjects, out installedObjectsCount); 435_contextPool[index].InstalledObjects = installedObjects; 438InitGenericInfo(ptsHost, (IntPtr)(index + 1), installedObjects, installedObjectsCount, ref _contextPool[index].ContextInfo); 441InitFloaterObjInfo(ptsHost, ref _contextPool[index].FloaterInit); 442InitTableObjInfo(ptsHost, ref _contextPool[index].TableobjInit); 445if (_contextPool[index].IsOptimalParagraphEnabled) 451_contextPool[index].TextPenaltyModule = penaltyModule; 452_contextPool[index].ContextInfo.ptsPenaltyModule = ptsPenaltyModule; 453_contextPool[index].TextFormatter = TextFormatter.CreateFromContext(textFormatterContext, textFormattingMode); 459GC.SuppressFinalize(_contextPool[index].TextPenaltyModule); 463PTS.Validate(PTS.CreateDocContext(ref _contextPool[index].ContextInfo, out context));