From eadb15102eb424d762874106d8b97d07b90ce631 Mon Sep 17 00:00:00 2001 From: Yoav Shany Date: Mon, 9 Sep 2019 10:29:25 +0300 Subject: [PATCH] Remove unnecessary object initializations from HtmlNodeNavigator.Clone() --- .../HtmlNodeNavigator.cs | 29 +++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/src/HtmlAgilityPack.Shared/HtmlNodeNavigator.cs b/src/HtmlAgilityPack.Shared/HtmlNodeNavigator.cs index 9ac2e05..95b75aa 100644 --- a/src/HtmlAgilityPack.Shared/HtmlNodeNavigator.cs +++ b/src/HtmlAgilityPack.Shared/HtmlNodeNavigator.cs @@ -26,8 +26,8 @@ public class HtmlNodeNavigator : XPathNavigator private int _attindex; private HtmlNode _currentnode; - private readonly HtmlDocument _doc = new HtmlDocument(); - private readonly HtmlNameTable _nametable = new HtmlNameTable(); + private readonly HtmlDocument _doc; + private readonly HtmlNameTable _nametable; internal bool Trace; @@ -37,6 +37,8 @@ public class HtmlNodeNavigator : XPathNavigator internal HtmlNodeNavigator() { + _doc = new HtmlDocument(); + _nametable = new HtmlNameTable(); Reset(); } @@ -57,6 +59,7 @@ internal HtmlNodeNavigator(HtmlDocument doc, HtmlNode currentNode) #endif _doc = doc; + _nametable = new HtmlNameTable(); Reset(); _currentnode = currentNode; } @@ -82,6 +85,8 @@ private HtmlNodeNavigator(HtmlNodeNavigator nav) /// The input stream. public HtmlNodeNavigator(Stream stream) { + _doc = new HtmlDocument(); + _nametable = new HtmlNameTable(); _doc.Load(stream); Reset(); } @@ -93,6 +98,8 @@ public HtmlNodeNavigator(Stream stream) /// Indicates whether to look for byte order marks at the beginning of the stream. public HtmlNodeNavigator(Stream stream, bool detectEncodingFromByteOrderMarks) { + _doc = new HtmlDocument(); + _nametable = new HtmlNameTable(); _doc.Load(stream, detectEncodingFromByteOrderMarks); Reset(); } @@ -104,6 +111,8 @@ public HtmlNodeNavigator(Stream stream, bool detectEncodingFromByteOrderMarks) /// The character encoding to use. public HtmlNodeNavigator(Stream stream, Encoding encoding) { + _doc = new HtmlDocument(); + _nametable = new HtmlNameTable(); _doc.Load(stream, encoding); Reset(); } @@ -116,6 +125,8 @@ public HtmlNodeNavigator(Stream stream, Encoding encoding) /// Indicates whether to look for byte order marks at the beginning of the stream. public HtmlNodeNavigator(Stream stream, Encoding encoding, bool detectEncodingFromByteOrderMarks) { + _doc = new HtmlDocument(); + _nametable = new HtmlNameTable(); _doc.Load(stream, encoding, detectEncodingFromByteOrderMarks); Reset(); } @@ -129,6 +140,8 @@ public HtmlNodeNavigator(Stream stream, Encoding encoding, bool detectEncodingFr /// The minimum buffer size. public HtmlNodeNavigator(Stream stream, Encoding encoding, bool detectEncodingFromByteOrderMarks, int buffersize) { + _doc = new HtmlDocument(); + _nametable = new HtmlNameTable(); _doc.Load(stream, encoding, detectEncodingFromByteOrderMarks, buffersize); Reset(); } @@ -139,6 +152,8 @@ public HtmlNodeNavigator(Stream stream, Encoding encoding, bool detectEncodingFr /// The TextReader used to feed the HTML data into the document. public HtmlNodeNavigator(TextReader reader) { + _doc = new HtmlDocument(); + _nametable = new HtmlNameTable(); _doc.Load(reader); Reset(); } @@ -150,6 +165,8 @@ public HtmlNodeNavigator(TextReader reader) /// The complete file path to be read. public HtmlNodeNavigator(string path) { + _doc = new HtmlDocument(); + _nametable = new HtmlNameTable(); _doc.Load(path); Reset(); } @@ -161,6 +178,8 @@ public HtmlNodeNavigator(string path) /// Indicates whether to look for byte order marks at the beginning of the file. public HtmlNodeNavigator(string path, bool detectEncodingFromByteOrderMarks) { + _doc = new HtmlDocument(); + _nametable = new HtmlNameTable(); _doc.Load(path, detectEncodingFromByteOrderMarks); Reset(); } @@ -172,6 +191,8 @@ public HtmlNodeNavigator(string path, bool detectEncodingFromByteOrderMarks) /// The character encoding to use. public HtmlNodeNavigator(string path, Encoding encoding) { + _doc = new HtmlDocument(); + _nametable = new HtmlNameTable(); _doc.Load(path, encoding); Reset(); } @@ -184,6 +205,8 @@ public HtmlNodeNavigator(string path, Encoding encoding) /// Indicates whether to look for byte order marks at the beginning of the file. public HtmlNodeNavigator(string path, Encoding encoding, bool detectEncodingFromByteOrderMarks) { + _doc = new HtmlDocument(); + _nametable = new HtmlNameTable(); _doc.Load(path, encoding, detectEncodingFromByteOrderMarks); Reset(); } @@ -197,6 +220,8 @@ public HtmlNodeNavigator(string path, Encoding encoding, bool detectEncodingFrom /// The minimum buffer size. public HtmlNodeNavigator(string path, Encoding encoding, bool detectEncodingFromByteOrderMarks, int buffersize) { + _doc = new HtmlDocument(); + _nametable = new HtmlNameTable(); _doc.Load(path, encoding, detectEncodingFromByteOrderMarks, buffersize); Reset(); }