private HashSet <uint> GenerateExecutableSectionContribIds() { var result = new HashSet <uint>(); IDiaEnumSectionContribs enumSectionContribs = null; try { enumSectionContribs = CreateDiaTable <IDiaEnumSectionContribs>(); } catch (NotImplementedException) { } if (enumSectionContribs == null) { return(result); } try { // GetEnumerator() fails in netcoreapp2.0--need to iterate without foreach. for (uint i = 0; i < (uint)enumSectionContribs.Count; i++) { IDiaSectionContrib sectionContrib = enumSectionContribs.Item(i); try { if (sectionContrib.execute != 0) { result.Add(sectionContrib.compilandId); } } finally { Marshal.ReleaseComObject(sectionContrib); } } } finally { if (enumSectionContribs != null) { Marshal.ReleaseComObject(enumSectionContribs); } } return(result); }
private HashSet <uint> GenerateExecutableSectionContribIds() { var result = new HashSet <uint>(); IDiaEnumSectionContribs enumSectionContribs = null; try { enumSectionContribs = CreateDiaTable <IDiaEnumSectionContribs>(); } catch (NotImplementedException) { } if (enumSectionContribs == null) { return(result); } try { foreach (IDiaSectionContrib sectionContrib in enumSectionContribs) { try { if (sectionContrib.execute != 0) { result.Add(sectionContrib.compilandId); } } finally { Marshal.ReleaseComObject(sectionContrib); } } } finally { if (enumSectionContribs != null) { Marshal.ReleaseComObject(enumSectionContribs); } } return(result); }