internal unsafe static OverriddenCursorSet CreateOverriddenCursorSet(Cursor c, ITranslationUnitItemFactory factory) { Library.CXCursor* overrides; uint count; Library.clang_getOverriddenCursors(c.Handle, &overrides, &count); if (count == 0) return Empty; OverriddenCursorSet result = new OverriddenCursorSet(overrides, count, factory); //Assuming that this only deletes the array allocated above and that the handles remain valid Library.clang_disposeOverriddenCursors(overrides); return result; }
unsafe static OverriddenCursorSet() { Empty = new OverriddenCursorSet(null, 0, null); }