* roottypes.cs: Rename from tree.cs.
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / DataObject.cs
index bb7b0c462ce4bca2f70d21acc1e05fc4eab6bdd9..3a011d6fc3ef25bbed606375dd55a0240c8a338a 100644 (file)
@@ -44,8 +44,6 @@ namespace System.Windows.Forms {
 
                        #region Constructors
                        internal Entry(string type, object data, bool autoconvert) {
-                               Entry   e;
-
                                this.type = type;
                                this.data = data;
                                this.autoconvert = autoconvert;
@@ -57,6 +55,10 @@ namespace System.Windows.Forms {
                                get {
                                        return data;
                                }
+
+                               set {
+                                       data = value;
+                               }
                        }
                        #endregion      // Properties
 
@@ -181,11 +183,15 @@ namespace System.Windows.Forms {
                }
 
                public virtual object GetData(string format, bool autoConvert) {
+                       Entry e;
                        if (autoConvert) {
-                               return Entry.FindConvertible(entries, format).Data;
+                               e = Entry.FindConvertible(entries, format);
                        } else {
-                               return Entry.Find(entries, format).Data;
+                               e = Entry.Find(entries, format);
                        }
+                       if (e == null)
+                               return null;
+                       return e.Data;
                }
 
                public virtual object GetData(Type format) {
@@ -224,7 +230,14 @@ namespace System.Windows.Forms {
                        Entry   entry;
                        Entry   e;
 
-                       entry = new DataObject.Entry(format, data, autoConvert);
+                       entry = Entry.Find(entries, format);
+
+                       if (entry == null) {
+                               entry = new DataObject.Entry(format, data, autoConvert);
+                       } else {
+                               entry.Data = data;
+                               return;
+                       }
 
                        lock (this) {
                                if (entries == null) {