Merge pull request #1641 from joelmartinez/docs-monodoc-mdoc-patches
[mono.git] / mcs / class / corlib / System / IntPtr.cs
index 63f8a5f13d5b65a269b5335be8da9c7b979225d7..c449de83997a3b308b1df8fbe881eb053f166dc3 100644 (file)
@@ -45,6 +45,7 @@
 using System.Globalization;
 using System.Runtime.Serialization;
 using System.Runtime.ConstrainedExecution;
+using System.Diagnostics.Contracts;
 
 namespace System
 {
@@ -148,9 +149,9 @@ namespace System
                public string ToString (string format)
                {
                        if (Size == 4)
-                               return ((int) m_value).ToString (format);
+                               return ((int) m_value).ToString (format, null);
                        else
-                               return ((long) m_value).ToString (format);
+                               return ((long) m_value).ToString (format, null);
                }
 
                [ReliabilityContractAttribute (Consistency.WillNotCorruptState, Cer.Success)]
@@ -200,7 +201,6 @@ namespace System
                        return value.m_value;
                }
 
-#if NET_4_0 || MOBILE
                [ReliabilityContract (Consistency.MayCorruptInstance, Cer.MayFail)]
                public static IntPtr Add (IntPtr pointer, int offset)
                {
@@ -224,6 +224,13 @@ namespace System
                {
                        return (IntPtr) (unchecked (((byte *) pointer) - offset));
                }
-#endif
+
+               // fast way to compare IntPtr to (IntPtr)0 while IntPtr.Zero doesn't work due to slow statics access
+               [Pure]
+               [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
+               internal unsafe bool IsNull()
+               {
+                       return m_value == null;
+               }
        }
 }