public void AutoMaskFreeImageReleasesMemory() { byte rawMask = 1 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 1 << 3 | 0 << 2 | 1 << 1 | 1; var buffer = new byte[] { rawMask }; var bounds = new SKRectI(0, 0, 8, 1); UInt32 rowBytes = 1; var format = SKMaskFormat.BW; var mask = new SKMask(bounds, rowBytes, format); var size = mask.ComputeTotalImageSize(); mask.Image = SKMask.AllocateImage(size); Marshal.Copy(buffer, 0, mask.Image, (int)size); using (new SKAutoMaskFreeImage(mask.Image)) { Assert.Equal(rawMask, mask.GetAddr1(0, 0)); } }