From 7232dcc55f4f43c4239f4cec4aaa60c5996e3d69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=B6ller?= Date: Mon, 27 Sep 2010 23:48:41 +0000 Subject: [PATCH] Fixed a problem where the ADL Main_Memory_Alloc callback delegate could be garbage collected while still in use. --- Hardware/ATI/ADL.cs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Hardware/ATI/ADL.cs b/Hardware/ATI/ADL.cs index 52e1bff..48931d0 100644 --- a/Hardware/ATI/ADL.cs +++ b/Hardware/ATI/ADL.cs @@ -267,9 +267,11 @@ namespace OpenHardwareMonitor.Hardware.ATI { private delegate IntPtr ADL_Main_Memory_AllocDelegate(int size); - private static IntPtr Main_Memory_Alloc(int size) { - return Marshal.AllocHGlobal(size);; - } + // create a Main_Memory_Alloc delegate and keep it alive + private static ADL_Main_Memory_AllocDelegate Main_Memory_Alloc = + delegate(int size) { + return Marshal.AllocHGlobal(size); + }; private static void Main_Memory_Free(IntPtr buffer) { if (IntPtr.Zero != buffer)