private IEnumerable <SourceFile> CreateSourceFileIteratorImpl(IDiaSymbol inObjectModule) { IDiaEnumSourceFiles sourceFilesEnum = null; try { _session.findFile(inObjectModule, null, 0, out sourceFilesEnum); while (true) { sourceFilesEnum.Next(1, out IDiaSourceFile sourceFile, out uint celt); if (celt != 1) { break; } yield return(new SourceFile(sourceFile)); } } finally { if (sourceFilesEnum != null) { Marshal.ReleaseComObject(sourceFilesEnum); } } }