public DwarfMethodDIE GetMethodDie(metadata.MethodSpec ms) { DwarfMethodDIE ret; if (method_dies.TryGetValue(ms, out ret)) { return(ret); } ret = new DwarfMethodDIE(); ret.ms = ms; ret.t = t; ret.dcu = this; method_dies[ms] = ret; return(ret); }
private SourceLoc GetSourceLoc() { DwarfMethodDIE first = null, ctor = null; foreach (var die in Children) { if (die is DwarfMethodDIE) { var dmdie = die as DwarfMethodDIE; if (first == null && dmdie.SourceFileId != 0) { first = dmdie; } if (ctor == null && dmdie.ms != null && dmdie.ms.Name == ".ctor" && dmdie.SourceFileId != 0) { ctor = dmdie; break; } } } if (first == null) { return(null); } var ret = new SourceLoc(); if (ctor != null) { ret.file = ctor.SourceFileId; ret.line = ctor.StartLine; ret.col = ctor.StartColumn; } else { ret.file = first.SourceFileId; ret.line = first.StartLine; ret.col = first.StartColumn; } return(ret); }