Don't add IDREFs to set of missing IDs multiple times
authormyeisha <github@quasiparticle.net>
Fri, 12 Nov 2010 16:08:27 +0000 (17:08 +0100)
committermyeisha <github@quasiparticle.net>
Fri, 12 Nov 2010 16:08:27 +0000 (17:08 +0100)
mcs/class/System.XML/Mono.Xml.Schema/XsdValidatingReader.cs

index f6ae29c20da7cba7df7bfc9264cec8a1ee4931f2..8eea3d30a2aa07cfed6f729da274dd2dc59f5487 100644 (file)
@@ -1809,14 +1809,14 @@ namespace Mono.Xml.Schema
                                        MissingIDReferences.Remove (str);
                                break;
                        case XmlTokenizedType.IDREF:
-                               if (!idList.Contains (str))
+                               if (!idList.Contains (str) && !MissingIDReferences.Contains (str))
                                        MissingIDReferences.Add (str);
                                break;
                        case XmlTokenizedType.IDREFS:
                                string [] idrefs = (string []) parsedValue;
                                for (int i = 0; i < idrefs.Length; i++) {
                                        string id = idrefs [i];
-                                       if (!idList.Contains (id))
+                                       if (!idList.Contains (id) && !MissingIDReferences.Contains (str))
                                                MissingIDReferences.Add (id);
                                }
                                break;