diff options
author | therzok <marius.ungureanu@xamarin.com> | 2016-07-12 15:56:29 +0300 |
---|---|---|
committer | therzok <marius.ungureanu@xamarin.com> | 2016-07-12 16:14:30 +0300 |
commit | f22295dabe970a8a32205566c2474c6a562a0143 (patch) | |
tree | 4afde6fe76f1c0a5c2256bf57a18b5c5e0ca4667 /main/src/core/MonoDevelop.Core | |
parent | f93588dd06a48f52c9c36da200277faf9d1e5a07 (diff) |
[General] Change some StringBuilder appends to not allocate strings.
This removes substring calls that allocate strings so chars are copied
from offsets into the stringbuilder.
Diffstat (limited to 'main/src/core/MonoDevelop.Core')
5 files changed, 9 insertions, 9 deletions
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Assemblies/PcFileCache.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Assemblies/PcFileCache.cs index dc3afba937..167d48924e 100644 --- a/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Assemblies/PcFileCache.cs +++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Assemblies/PcFileCache.cs @@ -538,7 +538,7 @@ namespace Mono.PkgConfig StringBuilder sb = new StringBuilder (); int last = 0; while (i != -1 && i < value.Length) { - sb.Append (value.Substring (last, i - last)); + sb.Append (value, last, i - last); if (i == 0 || value [i - 1] != '$') { // Evaluate if var is not escaped i += 2; @@ -564,7 +564,7 @@ namespace Mono.PkgConfig if (i < value.Length) i = value.IndexOf ("${", i); } - sb.Append (value.Substring (last, value.Length - last)); + sb.Append (value, last, value.Length - last); return sb.ToString (); } } diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Execution/LocalConsole.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Execution/LocalConsole.cs index 9731bde3f4..17b496bf80 100644 --- a/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Execution/LocalConsole.cs +++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Execution/LocalConsole.cs @@ -226,18 +226,18 @@ namespace MonoDevelop.Core.Execution for (int i=idx; i < current.Length; i++) { if (current[i] == '\n') { idx = i + 1; - sb.Append (current.Substring (0, i)); + sb.Append (current, 0, i); return sb.ToString (); } if (current[i] == '\r') { idx = i + 1; - sb.Append (current.Substring (0, i)); + sb.Append (current, 0, i); if (LoadCurrent (true) && current [idx] == '\n') idx++; return sb.ToString (); } } - sb.Append (current.Substring (idx)); + sb.Append (current, idx, current.Length - idx); current = null; } return sb.ToString (); @@ -247,7 +247,7 @@ namespace MonoDevelop.Core.Execution { StringBuilder sb = new StringBuilder (); while (LoadCurrent (true)) { - sb.Append (current.Substring (idx)); + sb.Append (current, idx, current.Length - idx); current = null; } return sb.ToString (); diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/IMSBuildPropertySet.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/IMSBuildPropertySet.cs index c50d165ac6..eeb2a3177b 100644 --- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/IMSBuildPropertySet.cs +++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/IMSBuildPropertySet.cs @@ -231,7 +231,7 @@ namespace MonoDevelop.Projects.MSBuild if (i != -1) { int fi = val.IndexOf ('\\'); if (fi != -1 && fi < i) i = fi; - sb.Append (val.Substring (0,i)); + sb.Append (val, 0,i)); } else i = 0; for (int n = i; n < val.Length; n++) { diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildProject.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildProject.cs index 187da6cd79..2a3b9c5463 100644 --- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildProject.cs +++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildProject.cs @@ -984,7 +984,7 @@ namespace MonoDevelop.Projects.MSBuild if (i == -1) { res.Append (t); } else { - res.Append (t.Substring (i + 1)); + res.Append (t, i + 1, t.Length - i - 1); return res.ToString (); } } else diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Text/TextFormatter.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Text/TextFormatter.cs index aee449009a..cc1f54ac19 100644 --- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Text/TextFormatter.cs +++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Text/TextFormatter.cs @@ -205,7 +205,7 @@ namespace MonoDevelop.Projects.Text } if (n != sn) - currentWord.Append (text.Substring (sn, n - sn)); + currentWord.Append (text, sn, n - sn); if (foundSpace) { AppendCurrentWord (text[n]); n++; |