diff --git a/source/CsQuery/HtmlParser/ElementFactory.cs b/source/CsQuery/HtmlParser/ElementFactory.cs
index 9d5fa285..e54038b1 100644
--- a/source/CsQuery/HtmlParser/ElementFactory.cs
+++ b/source/CsQuery/HtmlParser/ElementFactory.cs
@@ -507,17 +507,17 @@ private TextReader GetContextFromStream(TextReader reader, out string context)
{
int pos = 0;
- string tag = "";
- string readSoFar = "";
+ StringBuilder tag = new StringBuilder();
+ StringBuilder readSoFar = new StringBuilder();
int mode=0;
char[] buf = new char[1];
bool finished = false;
-
+
while (!finished && reader.Read(buf,0,1)>0)
{
char cur = buf[0];
- readSoFar += cur;
+ readSoFar.Append(cur);
switch(mode) {
case 0:
@@ -531,13 +531,13 @@ private TextReader GetContextFromStream(TextReader reader, out string context)
finished = true;
break;
}
- tag += cur;
+ tag.Append(cur);
break;
}
pos++;
}
- context = GetContext(tag);
- return new CombinedTextReader(new StringReader(readSoFar), reader);
+ context = GetContext(tag.ToString());
+ return new CombinedTextReader(new StringReader(readSoFar.ToString()), reader);
}
private void InitializeTreeBuilder()