Skip to content

[BUG] .Net MAUI SKCanvasView memory leak on IOS #2923

Closed
@nevse

Description

@nevse

Description

If you place SKCanvasView on Page it cause a memory leak.

Code

I create a simple app wich reproduce this leak https://github.com/nevse/maui-tests-SKCanvasViewLeak

Step to reproduce:

  1. Click button "Open Page"
  2. Navigate back from page with SKCanvasView
  3. Click button "Check Memory Leak"

I use such code to detect memory leak:

WeakReference pageRef;
void OnOpenPage(object sender, EventArgs e)
{
    var page = new SKCanvasViewPage();
    Navigation.PushAsync(page);
    pageRef = new WeakReference(page);
}
void OnCheckMemoryLeak(object sender, EventArgs e)
{
    GC.Collect();
    GC.WaitForPendingFinalizers();
    GC.Collect();
    if (pageRef != null && pageRef.IsAlive)
    {
        DisplayAlert("Memory Leak", "Memory Leak Detected", "OK");
    }
    else
    {
        DisplayAlert("Memory Leak", "No Memory Leak Detected", "OK");
    }
}

Expected Behavior

No response

Actual Behavior

No response

Version of SkiaSharp

2.88.3 (Current)

Last Known Good Version of SkiaSharp

Other (Please indicate in the description)

IDE / Editor

Visual Studio Code (macOS)

Platform / Operating System

iOS

Platform / Operating System Version

No response

Devices

No response

Relevant Screenshots

No response

Relevant Log Output

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions