using System;
using System.Security.Cryptography;
-using System.Collections;
+using System.Collections.Generic;
using System.Text;
using System.IO;
public static LineNumberEntry Null = new LineNumberEntry (0, 0, 0);
- private class OffsetComparerClass : IComparer
+ private class OffsetComparerClass : IComparer<LineNumberEntry>
{
- public int Compare (object a, object b)
+ public int Compare (LineNumberEntry l1, LineNumberEntry l2)
{
- LineNumberEntry l1 = (LineNumberEntry) a;
- LineNumberEntry l2 = (LineNumberEntry) b;
-
if (l1.Offset < l2.Offset)
return -1;
else if (l1.Offset > l2.Offset)
}
}
- private class RowComparerClass : IComparer
+ private class RowComparerClass : IComparer<LineNumberEntry>
{
- public int Compare (object a, object b)
+ public int Compare (LineNumberEntry l1, LineNumberEntry l2)
{
- LineNumberEntry l1 = (LineNumberEntry) a;
- LineNumberEntry l2 = (LineNumberEntry) b;
-
if (l1.Row < l2.Row)
return -1;
else if (l1.Row > l2.Row)
}
}
- public static readonly IComparer OffsetComparer = new OffsetComparerClass ();
- public static readonly IComparer RowComparer = new RowComparerClass ();
+ public static readonly IComparer<LineNumberEntry> OffsetComparer = new OffsetComparerClass ();
+ public static readonly IComparer<LineNumberEntry> RowComparer = new RowComparerClass ();
public override string ToString ()
{
public override string ToString ()
{
return String.Format ("[LocalVariable {0}:{1}:{2}]",
- Name, Index, BlockIndex);
+ Name, Index, BlockIndex - 1);
}
}
public readonly int ID;
#endregion
- ArrayList captured_vars = new ArrayList ();
- ArrayList captured_scopes = new ArrayList ();
+ List<CapturedVariable> captured_vars = new List<CapturedVariable> ();
+ List<CapturedScope> captured_scopes = new List<CapturedScope> ();
public AnonymousScopeEntry (int id)
{
MonoSymbolFile file;
SourceFileEntry source;
- ArrayList include_files;
- ArrayList namespaces;
+ List<SourceFileEntry> include_files;
+ List<NamespaceEntry> namespaces;
bool creating;
this.Index = file.AddCompileUnit (this);
creating = true;
- namespaces = new ArrayList ();
+ namespaces = new List<NamespaceEntry> ();
}
public void AddFile (SourceFileEntry file)
throw new InvalidOperationException ();
if (include_files == null)
- include_files = new ArrayList ();
+ include_files = new List<SourceFileEntry> ();
include_files.Add (file);
}
int count_includes = reader.ReadLeb128 ();
if (count_includes > 0) {
- include_files = new ArrayList ();
+ include_files = new List<SourceFileEntry> ();
for (int i = 0; i < count_includes; i++)
include_files.Add (file.GetSourceFile (reader.ReadLeb128 ()));
}
int count_ns = reader.ReadLeb128 ();
- namespaces = new ArrayList ();
+ namespaces = new List<NamespaceEntry> ();
for (int i = 0; i < count_ns; i ++)
namespaces.Add (new NamespaceEntry (file, reader));
void DoRead (MonoSymbolFile file, MyBinaryReader br)
{
- ArrayList lines = new ArrayList ();
+ var lines = new List<LineNumberEntry> ();
bool is_hidden = false, modified = false;
int stm_line = 1, stm_offset = 0, stm_file = 1;
locals_check_done :
;
} else {
- Hashtable local_names = new Hashtable ();
+ var local_names = new Dictionary<string, LocalVariableEntry> ();
foreach (LocalVariableEntry local in locals) {
- if (local_names.Contains (local.Name)) {
+ if (local_names.ContainsKey (local.Name)) {
flags |= Flags.LocalNamesAmbiguous;
break;
}