From c95214ba0665411704cf7c209f60743c3d888643 Mon Sep 17 00:00:00 2001 From: Stephan Sundermann Date: Thu, 10 Jan 2013 14:29:52 +0100 Subject: [PATCH] Fixed some memory leaks from Bitmaps --- Vocaluxe/Base/CDataBase.cs | 4 ++++ Vocaluxe/Base/CDraw.cs | 1 + Vocaluxe/Lib/Draw/CDirect3D.cs | 4 +++- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/Vocaluxe/Base/CDataBase.cs b/Vocaluxe/Base/CDataBase.cs index 8f3a6992..0019008e 100644 --- a/Vocaluxe/Base/CDataBase.cs +++ b/Vocaluxe/Base/CDataBase.cs @@ -1187,6 +1187,8 @@ namespace Vocaluxe.Base Graphics g = Graphics.FromImage(bmp); g.DrawImage(origin, new Rectangle(0, 0, w, h)); g.Dispose(); + if (origin != null) + origin.Dispose(); byte[] data = new byte[w * h * 4]; @@ -1484,6 +1486,8 @@ namespace Vocaluxe.Base Graphics g = Graphics.FromImage(bmp); g.DrawImage(origin, new Rectangle(0, 0, w, h)); g.Dispose(); + if (origin != null) + origin.Dispose(); tex = CDraw.AddTexture(bmp); byte[] data = new byte[w * h * 4]; diff --git a/Vocaluxe/Base/CDraw.cs b/Vocaluxe/Base/CDraw.cs index 7cc74e46..06967894 100644 --- a/Vocaluxe/Base/CDraw.cs +++ b/Vocaluxe/Base/CDraw.cs @@ -178,6 +178,7 @@ namespace Vocaluxe.Base Bitmap bmp = new Bitmap(origin, w, h); STexture tex = _Draw.AddTexture(bmp); bmp.Dispose(); + origin.Dispose(); return tex; } diff --git a/Vocaluxe/Lib/Draw/CDirect3D.cs b/Vocaluxe/Lib/Draw/CDirect3D.cs index 6e1402a2..d7aa03e6 100644 --- a/Vocaluxe/Lib/Draw/CDirect3D.cs +++ b/Vocaluxe/Lib/Draw/CDirect3D.cs @@ -881,7 +881,9 @@ namespace Vocaluxe.Lib.Draw CLog.LogError("Error loading Texture: " + TexturePath); return new STexture(-1); } - return AddTexture(bmp, TexturePath); + STexture s = AddTexture(bmp, TexturePath); + bmp.Dispose(); + return s; } CLog.LogError("Can't find File: " + TexturePath); return new STexture(-1);