2004-11-08 Ben Maurer <bmaurer@ximian.com>
authorBen Maurer <benm@mono-cvs.ximian.com>
Tue, 9 Nov 2004 01:27:09 +0000 (01:27 -0000)
committerBen Maurer <benm@mono-cvs.ximian.com>
Tue, 9 Nov 2004 01:27:09 +0000 (01:27 -0000)
* replace.cs, parser.cs: Use stringbuilder for allocation sanity.

svn path=/trunk/mcs/; revision=35869

mcs/class/System/System.Text.RegularExpressions/ChangeLog
mcs/class/System/System.Text.RegularExpressions/parser.cs
mcs/class/System/System.Text.RegularExpressions/replace.cs

index 95ee772a930ba2d18da41a3b9f260099382195a1..54f7f476fa138b231916ccd6f50ebcabf6c98061 100644 (file)
@@ -1,3 +1,7 @@
+2004-11-08  Ben Maurer  <bmaurer@ximian.com>
+
+       * replace.cs, parser.cs: Use stringbuilder for allocation sanity.
+
 2004-10-21 Joerg Rosenkranz <joergr@voelcker.com>\r
 \r
     * regex.cs: Fixed a bug introduced with the last patch which\r
index 84497038793ad3a8876491077de3caa9ea8e396b..f9feea233917c1075dd1dbf56a9c6a08d976a7f5 100644 (file)
@@ -1048,7 +1048,7 @@ namespace System.Text.RegularExpressions.Syntax {
                        this.pattern = pattern;
                        this.ptr = 0;
 
-                       string result = "";
+                       StringBuilder result = new StringBuilder (pattern.Length);
                        while (ptr < pattern.Length) {
                                int c = pattern[ptr ++];
                                if (c == '\\') {
@@ -1060,10 +1060,10 @@ namespace System.Text.RegularExpressions.Syntax {
                                                        c = '\b';
                                        }
                                }
-                               result += (char)c;
+                               result.Append (c);
                        }
 
-                       return result;
+                       return result.ToString ();
                }
 
                private void ResolveReferences () {
index 46492bec2838a49a2e5ad4a4c321c245d91daaba..cb4685e725fbbafa6bd043a0a25604da01d2e3ea 100644 (file)
@@ -59,7 +59,7 @@ namespace System.Text.RegularExpressions {
 \r
                private void Compile (string replacement) {\r
                        replacement = Parser.Unescape (replacement);\r
-                       string literal = "";\r
+                       StringBuilder literal = new StringBuilder ();\r
 \r
                        int ptr = 0;\r
                        char c;\r
@@ -75,18 +75,18 @@ namespace System.Text.RegularExpressions {
                                }\r
 \r
                                if (term != null) {\r
-                                       term.Literal = literal;\r
+                                       term.Literal = literal.ToString ();\r
                                        terms.Add (term);\r
 \r
                                        term = null;\r
-                                       literal = "";\r
+                                       literal.Length = 0;\r
                                }\r
                                else\r
-                                       literal += c;\r
+                                       literal.Append (c);\r
                        }\r
 \r
                        if (term == null && literal.Length > 0) {\r
-                               terms.Add (new Term (literal));\r
+                               terms.Add (new Term (literal.ToString ()));\r
                        }\r
                }\r
 \r