From b458b406834fe79ef9dc0ea14eb15d49509ae1af Mon Sep 17 00:00:00 2001 From: thefiddler Date: Sun, 5 Jan 2014 22:05:54 +0100 Subject: [PATCH] [Mac] Use out/ref parameters instead of unsafe pointers in bindings --- .../MacOS/CarbonBindings/CoreFoundation.cs | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/Source/OpenTK/Platform/MacOS/CarbonBindings/CoreFoundation.cs b/Source/OpenTK/Platform/MacOS/CarbonBindings/CoreFoundation.cs index a4d6527b..bec5c6f0 100644 --- a/Source/OpenTK/Platform/MacOS/CarbonBindings/CoreFoundation.cs +++ b/Source/OpenTK/Platform/MacOS/CarbonBindings/CoreFoundation.cs @@ -62,6 +62,7 @@ namespace OpenTK.Platform.MacOS.Carbon } } } + struct CFDictionary { public CFDictionary(IntPtr reference) @@ -79,18 +80,16 @@ namespace OpenTK.Platform.MacOS.Carbon return CF.CFDictionaryGetCount(dictionaryRef); } } + public double GetNumberValue(string key) { - unsafe - { - double retval; - IntPtr cfnum = CF.CFDictionaryGetValue(dictionaryRef, - CF.CFSTR(key)); + double retval; + IntPtr cfnum = CF.CFDictionaryGetValue(dictionaryRef, + CF.CFSTR(key)); - CF.CFNumberGetValue(cfnum, CF.CFNumberType.kCFNumberDoubleType, &retval); + CF.CFNumberGetValue(cfnum, CF.CFNumberType.kCFNumberDoubleType, out retval); - return retval; - } + return retval; } } class CF @@ -150,9 +149,11 @@ namespace OpenTK.Platform.MacOS.Carbon ); [DllImport(appServices)] - internal unsafe static extern bool CFNumberGetValue (IntPtr number, CFNumberType theType, int* valuePtr); + internal static extern bool CFNumberGetValue (IntPtr number, CFNumberType theType, out int valuePtr); [DllImport(appServices)] - internal unsafe static extern bool CFNumberGetValue(IntPtr number, CFNumberType theType, double* valuePtr); + internal static extern bool CFNumberGetValue (IntPtr number, CFNumberType theType, out long valuePtr); + [DllImport(appServices)] + internal static extern bool CFNumberGetValue(IntPtr number, CFNumberType theType, out double valuePtr); internal enum CFNumberType {