void ensure_sources()
{
if (sources != null)
return;
sources = new ArrayList ();
source_hash = new Dictionary<SourceFile,C.SourceFileEntry> ();
source_file_hash = new Dictionary<C.SourceFileEntry,SourceFile> ();
method_index_hash = new Hashtable ();
if (File == null)
return;
bool need_conversion = false;
if ((Environment.OSVersion.Platform == PlatformID.Unix) &&
((File.OffsetTable.FileFlags & C.OffsetTable.Flags.WindowsFileNames) != 0) &&
!process.Session.Config.OpaqueFileNames) {
need_conversion = true;
}
foreach (C.SourceFileEntry source in File.Sources) {
string file_name = source.FileName;
string orig_name = file_name;
if (need_conversion)
file_name = DebuggerConfiguration.WindowsToUnix (file_name);
SourceFile info = new MonoSourceFile (
process.Session, Module, source, file_name);
sources.Add (info);
source_hash.Add (info, source);
source_file_hash.Add (source, info);
}
}