diff options
author | Ben Maurer <benm@mono-cvs.ximian.com> | 2003-12-21 04:55:05 +0300 |
---|---|---|
committer | Ben Maurer <benm@mono-cvs.ximian.com> | 2003-12-21 04:55:05 +0300 |
commit | 5840b99edc2f3b403f0d0d59b6f461f9f6096e68 (patch) | |
tree | d3fd30de9de6a784bbc9e350ead2867f67500374 /mcs/class/Mono.CSharp.Debugger | |
parent | 0b2933f3247b5c07ebd0248c870729b5a4f7b774 (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/ChangeLog | 4 | ||||
-rw-r--r-- | mcs/class/Mono.CSharp.Debugger/MonoSymbolTable.cs | 34 |
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++) |