void compute_source()
{
lock (this) {
if (has_source)
return;
has_source = true;
if ((method == null) || !method.HasSource || !method.HasLineNumbers)
return;
source = method.LineNumberTable.Lookup (address);
if (source == null)
return;
if (method.MethodSource.IsDynamic)
return;
location = new SourceLocation (
method.MethodSource, source.SourceFile, source.Row);
}
}