XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFESystem

【Rust】XFE系统,基于Rust和汇编

公开
关注 0 Fork 0 Star 0
UTF-8
namespace XFESystem.Browser;

public sealed record BrowserDomLifetime(int Wrappers,int ReverseWrappers,int Identities,int Canvases,int FormSelections,int Ranges,
    long HandlesCreated,long HandlesDisposed)
{public long OutstandingHandles=>HandlesCreated-HandlesDisposed;}

public sealed partial class DomBridge
{
    /// <summary>Regular owner-loop maintenance, independent of diagnostics.</summary>
    internal void PruneRetainedState()
    { _=wrappers.Count;_=nodes.Count;_=identities.Count;_=canvases.Count;_=selections.Count;_=ranges.Count; }
    /// <summary>Read and prune only on the page's exclusive engine owner.</summary>
    public BrowserDomLifetime Lifetime
    {
        get
        {
            int a=wrappers.Count,b=nodes.Count,c=identities.Count,d=canvases.Count,e=selections.Count,f=ranges.Count;
            return new(a,b,c,d,e,f,
                wrappers.HandlesCreated+nodes.HandlesCreated+identities.HandlesCreated+canvases.HandlesCreated+selections.HandlesCreated+ranges.HandlesCreated,
                wrappers.HandlesDisposed+nodes.HandlesDisposed+identities.HandlesDisposed+canvases.HandlesDisposed+selections.HandlesDisposed+ranges.HandlesDisposed);
        }
    }
    /// <summary>Explicit native-handle cleanup; no finalization dependency.</summary>
    public void ReleaseRetainedState()
    {
        wrappers.Clear();nodes.Clear();identities.Clear();canvases.Clear();selections.Clear();ranges.Clear();
        decoders.Clear();constructedSheets.Clear();focused=null;CurrentScript=null;
        networkRequests.Clear();
        createdScripts.Clear();
        parsedDocuments.Clear(); inertParsedScripts.Clear(); parsedCharacters = 0;
        documentSelection = null; selectionWrapper = null;
    }
}