+2006-03-23 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XmlReader.cs : in XmlReader.Create() ValidationType Auto and XDR
+ are simply ignored (it was found on running NvdlValidatingReader
+ under MS.NET 2.0).
+
+2006-03-23 Atsushi Enomoto <atsushi@ximian.com>
+
+ * DTDValidatingReader.cs : avoid NullReferenceException. Input
+ XmlReader might not be IHasXmlParserContext.
+
+2006-03-08 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XmlReader.cs: ReadContentAsXXX() just stops at start element,
+ without rejecting it as an error.
+ ReadElementContentAsXXX() rejects child element nodes.
+
+2006-02-28 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XmlElement.cs : (WriteTo) use IsEmpty to determine which to use:
+ WriteEndElement() and WriteFullEndElement(). Fixed sys.security
+ regression.
+
+2006-02-24 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XmlTextWriter2.cs :
+ WriteRaw() has stupid second arg. Fixed bug #77623.
+ WriteString() should raise an error when it is called immediately
+ after WriteStartDocument().
+
+2006-02-22 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XmlTextWriter2.cs : WriteChars() should allow Attribute state.
+
+2006-02-22 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XmlChar.cs : (IndexOfInvalidChar) fixed surrogate pairs handling.
+ They were always regarded as invalid.
+ * XmlTextWriter2.cs : seems like MS XmlTextWriter outputs invalid
+ characters as character references. It totally does not make sense
+ but corcompare depended on that behavior.
+
+ This "compatibility" fix causes 10% or more performance loss!!!
+
+2006-02-21 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XmlTextWriter2.cs : (WriteStartAtribute) more == removal.
+ * XmlNode.cs : (get_InnerText) reduce extra StringBuilder creation.
+
+2006-02-21 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XmlTextWriter2.cs : (WriteStartAttribute) reduced string == string.
+
+2006-02-21 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XmlDocument.cs : (ReadNodeCore) not public.
+
+2006-02-21 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XmlTextWriter2.cs : (CloseStartElement)
+ Avoid ArrayList.Clear() and culture-sensitive Contains().
+
+2006-02-21 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XmlNamespaceManager.cs : added internal LookupPrefixExclusive()
+ which discards "overriden" namespaces.
+ * XmlTextWriter2.cs : fresh implementation.
+ - The source structure is simplified and cleaner.
+ - When outputting escaped string, output directly to TextWriter.
+ - roughly 20% performance improvement.
+
+ (Also fixed previous perf. evaluation excess in ChangeLog.)
+
+2006-02-20 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XmlElement.cs : (WriteTo) make use of HasAttributes. Remove extra
+ check. 5% speed improvement.
+
+2006-02-20 Atsushi Enomoto <atsushi@ximian.com>
+
+ * DTDValidatingReader2.cs : added Source XmlReader property for
+ XsdValidatingReader use (see XsdValidatingReader change as well).
+
+2006-02-20 Atsushi Enomoto <atsushi@ximian.com>
+
+ * EntityResolvingXmlReader.cs, XmlNodeReader2.cs, XmlTextReader2.cs :
+ in get_NodeType() entity reader existence check is faster.
+ * DTDValidatingReader2.cs : IsDefault could be avoided.
+
+2006-02-20 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XmlNodeReaderImpl.cs : optimized Depth.
+
+2006-02-20 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XmlValidatingReader.cs : reducing layered ReadState invocation
+ results in 10% speed up.
+
+2006-02-20 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XmlNodeReaderImpl.cs : Reimplemented Read(). Points are:
+ - reduced call to NextSibling which is very unlikely to be inlined
+ - reorganized conditioning to avoid extra check
+ - added description on each returning branch.
+ - And then, removed unused code.
+ It is 1.5x faster than before.
+
+2006-02-17 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XmlElement.cs : NextSibling could be effectively computed using
+ LastLinkedChild, beyond previous XmlLinkedNode optimization.
+
+2006-02-17 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XmlLinkedNode.cs : In NextSibling, use LastChild directly.
+ It improves NextSibling performance in bulky document.
+
+2006-02-17 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XmlNodeReaderImpl.cs : do not compute ownerLinkedNode, just store
+ it in Read(). Simply use state field in EOF. They result in 20%
+ perf. boost. Expanding EOF also improved performance by 2-3%
+ (mono --optimize=inline might work in the later stage).
+
+2006-02-17 Atsushi Enomoto <atsushi@ximian.com>
+
+ * DTDValidatingReader2.cs : more refactoring. Split ReadContent()
+ into some methods. Reduced some extra MoveToElement().
+
+2006-02-17 Atsushi Enomoto <atsushi@ximian.com>
+
+ * DTDValidatingReader2.cs : more refactoring. Removed and simplified
+ some error check. String += would be enough for entity-reference-
+ mixed attributes which rarely happen, so simplify the code.
+ Added comments on how the fields are used.
+
+2006-02-17 Atsushi Enomoto <atsushi@ximian.com>
+
+ * DTDValidatingReader2.cs : attribute node simplification. It now
+ stores attribute node slots, including default attributes for
+ further refactoring.
+
+2006-02-17 Atsushi Enomoto <atsushi@ximian.com>
+
+ * DTDValidatingReader2.cs, EntityResolvingXmlReader.cs :
+ new files for refactoring DTD validating reader. As the first stage,
+ it splits entity handling process from DTD validation step.
+
+ (DTDValidatingReader.cs will be removed at some stage).
+
+2006-02-17 Atsushi Enomoto <atsushi@ximian.com>
+
+ * DTDObjectModel.cs : entity resolution method will be used in
+ the next DTD validating reader in 1.x.
+
+2006-02-16 Atsushi Enomoto <atsushi@ximian.com>
+
+ * IHasXmlChildNode.cs :
+ New internal interface to hold LastLinkedChild.
+ * XmlNodeListChildren.cs XmlEntity.cs XmlElement.cs XmlAttribute.cs
+ XmlLinkedNode.cs XmlEntityReference.cs XmlNode.cs
+ XmlDocumentFragment.cs XmlDocument.cs : use it. It minimizes memory
+ consumption in XmlText, XmlWhitespace, XmlComment etc.
+
+2006-02-16 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XmlChar.cs : added IndexOfNonWhitespace() and IndexOfInvalid() (not
+ in use yet).
+ * NewLineHandling.cs : prepared to be used internally in 1.x.
+
+2006-02-16 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XmlDocument.cs XmlTextReader.cs : in ReadNode(), we can avoid
+ extraneous whitespace node creation for XmlTextReader by setting
+ WhitespaceHandling.Significant when PreserveWhitespace is false.
+
+2006-02-16 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XmlTextReader.cs : atomize whitespace values. It effectively saves
+ memory consumption when an input XML is indented.
+
+2006-02-14 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XmlTextReader.cs : When "Significant" is assigned to
+ WhitespaceHandling, it should ignore non-significant whitespaces.
+
+2006-02-14 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XmlWriter.cs : (WriteElementString and WriteAttributeString)
+ Skip empty string output.
+
+2006-02-14 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XmlTextWriter.cs : WriteRaw("") is not simply ignored but process
+ state check and closes open tag.
+
+2006-02-11 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XmlTextReader.cs :
+ Avoid extra AppendValueChar() in ReadWhitespace().
+
+2006-02-06 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XmlTextReader.cs : ReadTextReader() is now assured to have current
+ node content, except for Text, CDATA and Comment. ReadName() does
+ not use nameBuffer and reuse peekChars.
+
+2006-02-06 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XmlTextReader.cs : eliminated currentTagBuffer. XmlDeclaration is
+ now once read as PI and then re-parsed from Value. DTD internal
+ subset is now parsed as usual "value".
+
+2006-02-06 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XmlTextReader.cs : Expect() could be written inline and it could
+ provide better information. ReadEndTag() could use Expect() instead
+ of costy ReadName().
+
+2006-02-04 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XmlTextReader.cs : on ReadEndTag() we can avoid NameTable.Add().
+ Store name, local name and prefix in the stack instead of just name
+ and reuse them for EndElement.
+
+2006-02-04 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XmlDocumentNavigator.cs : make use of HasAttributes (avoid possible
+ XmlAttributeCollection creation).
+
+2006-02-03 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XmlTextReader.cs : no need to call Clear() for each attribute value.
+
+2006-02-03 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XmlDocument.cs : reverted most of the previous changes. It somehow
+ broke System.Data tests.
+
+2006-01-30 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XmlDocument.cs, XmlAttribute.cs, XmlElement.cs : Avoid unnecessary
+ name checks in CreateElement() and CreateAttribute().
+ get_DocumentType() could be stopped when the iterated child node
+ is the document element.
+ * XmlNode.cs : removed commented lines.
+ * XmlNameEntry.cs : hash code for a name entry is mostly identical by
+ its local name, so avoid extraneous GetHashCode() especially on
+ namespaces.
+
+2006-01-30 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XmlReader.cs : ReadOuterXml() returns meaingful value only for
+ element and attribute. ReadInnerXml() does not have to create
+ XmlTextWriter for empty elements.
+
+2006-01-30 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XmlNodeReader2.cs XmlException.cs XmlReader.cs XmlTextReader.cs
+ XmlWriter.cs XmlTextWriter.cs XmlValidatingReader.cs
+ XmlNodeReaderImpl.cs DTDValidatingReader.cs XmlSecureResolver.cs:
+ cleaning up obsolete NET_1_0 code.
+
+2006-01-28 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XmlTextWriter.cs : avoid case-insensitive String.Compare().
+ Use array for openElements rather than ArrayList.
+
+2006-01-28 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XmlElement.cs, XmlAttribute.cs :
+ Avoid ChildNodes.Count and use FirstChild/NextSibling.
+
+2006-01-28 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XmlNode.cs, XmlIteratorNodeList.cs :
+ Now we can enable XmlIteratorNodeList again (mcs, incorrectly
+ removing nodes in the node list, was fixed).
+
+2006-01-28 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XmlDocument.cs : in ReadNode() to consume element node, switched
+ to MoveToAttribute(int) since MoveToNextAttribute() was somehow
+ not working fine. It is needed to avoid Sys.Data test breakage
+ and anything else should be fixed indeed.
Fri Jan 27 20:39:48 CET 2006 Paolo Molaro <lupus@ximian.com>