Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Maurer <benm@mono-cvs.ximian.com>2003-12-21 04:55:05 +0300
committerBen Maurer <benm@mono-cvs.ximian.com>2003-12-21 04:55:05 +0300
commit5840b99edc2f3b403f0d0d59b6f461f9f6096e68 (patch)
treed3fd30de9de6a784bbc9e350ead2867f67500374 /mcs/class/Mono.CSharp.Debugger
parent0b2933f3247b5c07ebd0248c870729b5a4f7b774 (diff)
2003-12-20 Ben Maurer <bmaurer@users.sourceforge.net>
* MonoSymbolTable.cs: Fewer StringBuilder allocs. svn path=/trunk/mcs/; revision=21392
Diffstat (limited to 'mcs/class/Mono.CSharp.Debugger')
-rw-r--r--mcs/class/Mono.CSharp.Debugger/ChangeLog4
-rw-r--r--mcs/class/Mono.CSharp.Debugger/MonoSymbolTable.cs34
2 files changed, 25 insertions, 13 deletions
diff --git a/mcs/class/Mono.CSharp.Debugger/ChangeLog b/mcs/class/Mono.CSharp.Debugger/ChangeLog
index 71b572c7996..a6fcafd76c7 100644
--- a/mcs/class/Mono.CSharp.Debugger/ChangeLog
+++ b/mcs/class/Mono.CSharp.Debugger/ChangeLog
@@ -1,3 +1,7 @@
+2003-12-20 Ben Maurer <bmaurer@users.sourceforge.net>
+
+ * MonoSymbolTable.cs: Fewer StringBuilder allocs.
+
2003-12-08 Zoltan Varga <vargaz@freemail.hu>
* MonoSymbolWriter.cs: Create ArrayLists only when needed.
diff --git a/mcs/class/Mono.CSharp.Debugger/MonoSymbolTable.cs b/mcs/class/Mono.CSharp.Debugger/MonoSymbolTable.cs
index 0fc6ceee423..4aec42247a6 100644
--- a/mcs/class/Mono.CSharp.Debugger/MonoSymbolTable.cs
+++ b/mcs/class/Mono.CSharp.Debugger/MonoSymbolTable.cs
@@ -597,22 +597,30 @@ namespace Mono.CSharp.Debugger
ParameterInfo[] parameters = method.GetParameters ();
if (parameters == null)
parameters = new ParameterInfo [0];
-
- StringBuilder sb = new StringBuilder ();
- sb.Append (method.DeclaringType.FullName);
- sb.Append (".");
- sb.Append (method.Name);
- sb.Append ("(");
- for (int i = 0; i < parameters.Length; i++) {
- if (i > 0)
- sb.Append (",");
- sb.Append (parameters [i].ParameterType.FullName);
+
+ if (parameters.Length == 0)
+ full_name = method.DeclaringType.FullName + "." + method.Name + "()";
+ else if (parameters.Length == 1)
+ full_name = method.DeclaringType.FullName + "." + method.Name + "(" + parameters [0].ParameterType.FullName + ")";
+ else if (parameters.Length == 2)
+ full_name = method.DeclaringType.FullName + "." + method.Name + "(" + parameters [0].ParameterType.FullName + "," + parameters [1].ParameterType.FullName + ")";
+ else {
+ StringBuilder sb = new StringBuilder ();
+ sb.Append (method.DeclaringType.FullName);
+ sb.Append (".");
+ sb.Append (method.Name);
+ sb.Append ("(");
+ for (int i = 0; i < parameters.Length; i++) {
+ if (i > 0)
+ sb.Append (",");
+ sb.Append (parameters [i].ParameterType.FullName);
+ }
+ sb.Append (")");
+ full_name = sb.ToString ();
}
- sb.Append (")");
name = method.Name;
- full_name = sb.ToString ();
-
+
NumParameters = parameters.Length;
ParamTypeIndices = new int [NumParameters];
for (int i = 0; i < NumParameters; i++)