diff options
Diffstat (limited to 'mcs/class/corlib/System/IntPtr.cs')
-rw-r--r-- | mcs/class/corlib/System/IntPtr.cs | 165 |
1 files changed, 0 insertions, 165 deletions
diff --git a/mcs/class/corlib/System/IntPtr.cs b/mcs/class/corlib/System/IntPtr.cs deleted file mode 100644 index bb12f2482f1..00000000000 --- a/mcs/class/corlib/System/IntPtr.cs +++ /dev/null @@ -1,165 +0,0 @@ -// -// System.IntPtr.cs -// -// Author: -// Miguel de Icaza (miguel@ximian.com) -// -// Maintainer: -// Michael Lambert, michaellambert@email.com -// -// (C) Ximian, Inc. http://www.ximian.com -// -// Remarks: Requires '/unsafe' compiler option. This class uses void*, -// in overloaded constructors, conversion, and cast members in -// the public interface. Using pointers is not valid CLS and -// the methods in question have been marked with the -// CLSCompliant attribute that avoid compiler warnings. -// -// FIXME: How do you specify a native int in C#? I am going to have to do some figuring out -// - -using System; -using System.Runtime.Serialization; - -#if __MonoCS__ -#else -[ - assembly: System.CLSCompliant(true) -] -#endif - -namespace System { - - [ - CLSCompliant(true) - ] - [Serializable] - public unsafe struct IntPtr : ISerializable { - - private void *value; - - public static readonly IntPtr Zero; - - static IntPtr () - { - Zero.value = (void *) 0; - } - - public IntPtr (int i32) - { - value = (void *) i32; - } - - public IntPtr (long i64) - { - value = (void *) i64; - } - - [ - CLSCompliant(false) - ] - unsafe public IntPtr (void *ptr) - { - value = ptr; - } - - public static int Size { - get { - return sizeof (void *); - } - } - - public void GetObjectData (SerializationInfo si, StreamingContext sc) - { - if( si == null ) - throw new ArgumentNullException( "si" ); - - si.AddValue("value", (long) value); - } - - public override bool Equals (object o) - { - if (!(o is System.IntPtr)) - return false; - - return ((IntPtr) o).value == value; - } - - public override int GetHashCode () - { - return (int) value; - } - - public int ToInt32 () - { - return (int) value; - } - - public long ToInt64 () - { - return (long) value; - } - - [ - CLSCompliant(false) - ] - unsafe public void *ToPointer () - { - return value; - } - - override public string ToString () - { - if (Size == 4) - return ((int) value).ToString (); - else - return ((long) value).ToString (); - } - - public static bool operator == (IntPtr a, IntPtr b) - { - return (a.value == b.value); - } - - public static bool operator != (IntPtr a, IntPtr b) - { - return (a.value != b.value); - } - - public static explicit operator IntPtr (int value) - { - return new IntPtr (value); - } - - public static explicit operator IntPtr (long value) - { - return new IntPtr (value); - } - - [ - CLSCompliant(false) - ] - unsafe public static explicit operator IntPtr (void *value) - { - return new IntPtr (value); - } - - public static explicit operator int (IntPtr value) - { - return (int) value.value; - } - - public static explicit operator long (IntPtr value) - { - return (long) value.value; - } - - [ - CLSCompliant(false) - ] - unsafe public static explicit operator void * (IntPtr value) - { - return value.value; - } - } -} |