From 009dd8ba07e1bc1625483453a7d316055e5b58a8 Mon Sep 17 00:00:00 2001 From: Victor Milovanov Date: Sat, 18 Jan 2014 21:28:14 -0800 Subject: [PATCH] * fixed memory leaks in VisibleImage --- src/TestStack.White/UIItems/UIItem.cs | 4 ++-- src/TestStack.White/WindowsAPI/DisplayedItem.cs | 7 +++---- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/TestStack.White/UIItems/UIItem.cs b/src/TestStack.White/UIItems/UIItem.cs index 2a974fff..410a7e6f 100644 --- a/src/TestStack.White/UIItems/UIItem.cs +++ b/src/TestStack.White/UIItems/UIItem.cs @@ -338,8 +338,8 @@ public virtual Bitmap VisibleImage get { var displayedItem = new DisplayedItem(new IntPtr(automationElement.Current.NativeWindowHandle)); - System.Drawing.Image image = displayedItem.GetVisibleImage(); - return new Bitmap(image); + using(System.Drawing.Image image = displayedItem.GetVisibleImage()) + return new Bitmap(image); } } diff --git a/src/TestStack.White/WindowsAPI/DisplayedItem.cs b/src/TestStack.White/WindowsAPI/DisplayedItem.cs index 22bd5e8b..234dcf60 100644 --- a/src/TestStack.White/WindowsAPI/DisplayedItem.cs +++ b/src/TestStack.White/WindowsAPI/DisplayedItem.cs @@ -75,11 +75,10 @@ public virtual Bitmap GetVisibleImage() { DeleteDC(compatibleDeviceContext); ReleaseDC(windowHandle, deviceContext); - img = Image.FromHbitmap(bitmap); - DeleteObject(bitmap); + img = Image.FromHbitmap(bitmap); + DeleteObject(bitmap); } - - return new Bitmap(img); + using (img) return new Bitmap(img); } } } \ No newline at end of file