private void SetAttributeArrayLength(int size) { DTMXPathAttributeNode [] newArr = new DTMXPathAttributeNode [size]; Array.Copy(attributes, newArr, System.Math.Min(size, attributes.Length)); attributes = newArr; }
public DTMXPathDocumentWriter(XmlNameTable nt, int defaultCapacity) { nameTable = nt == null ? new NameTable() : nt; nodeCapacity = defaultCapacity; attributeCapacity = nodeCapacity; idTable = new Hashtable(); nodes = new DTMXPathLinkedNode [nodeCapacity]; attributes = new DTMXPathAttributeNode [attributeCapacity]; namespaces = new DTMXPathNamespaceNode [0]; Init(); }
private void Init(XmlReader reader, XmlSpace space, int defaultCapacity) { this.xmlReader = reader; this.validatingReader = reader as XmlValidatingReader; lineInfo = reader as IXmlLineInfo; this.xmlSpace = space; this.nameTable = reader.NameTable; nodeCapacity = defaultCapacity; attributeCapacity = nodeCapacity; idTable = new Hashtable(); nodes = new DTMXPathLinkedNode [nodeCapacity]; attributes = new DTMXPathAttributeNode [attributeCapacity]; namespaces = new DTMXPathNamespaceNode [0]; Compile(); }
// Followings are skipped: nextAttribute, public void AddAttribute(int ownerElement, string localName, string ns, string prefix, string value, int lineNumber, int linePosition) { if (attributes.Length < attributeIndex + 1) { attributeCapacity *= 4; SetAttributeArrayLength(attributeCapacity); } #if DTM_CLASS attributes [attributeIndex] = new DTMXPathAttributeNode(); #endif attributes [attributeIndex].OwnerElement = ownerElement; attributes [attributeIndex].LocalName = localName; attributes [attributeIndex].NamespaceURI = ns; attributes [attributeIndex].Prefix = prefix; attributes [attributeIndex].Value = value; attributes [attributeIndex].LineNumber = lineNumber; attributes [attributeIndex].LinePosition = linePosition; }
private void SetAttributeArrayLength(int size) { DTMXPathAttributeNode[] destinationArray = new DTMXPathAttributeNode[size]; Array.Copy(this.attributes, destinationArray, Math.Min(size, this.attributes.Length)); this.attributes = destinationArray; }