This is a prep series for my yet-to-be-sent re-roll of [1], aka. ab/fsck-unexpected-type. Jeff King had a comment in [2] saying it was odd to have an "oi2" variable, that was because there was on an "oi" name already defined via the new-gone open_method_decl(loose) macro. As we'll see we could do without the initial "oi" and a few other types of indirection in this interface. Junio: Could you eject ab/fsck-unexpected-type while this is being considered/cooked? I didn't really see how to address Jeff's feedback about that variable name in a way that wouldn't just make something like this refactoring part of an even bigger series. I think ejecting the functional changes & trying to get this in first is the least worst approach at this point. Eventually I'll submit a re-roll of ab/fsck-unexpected-type either based on this, or master (if it's landed already). 1. https://lore.kernel.org/git/cover-0.6-00000000000-20210413T093734Z-avarab@xxxxxxxxx/#t 2. https://lore.kernel.org/git/YILZHiuUyj0mt958@xxxxxxxxxxxxxxxxxxxxxxx/ Ævar Arnfjörð Bjarmason (5): streaming.c: avoid forward declarations streaming.c: remove enum/function/vtbl indirection streaming.c: remove {open,close,read}_method_decl() macros streaming.c: stop passing around "object_info *" to open() streaming.c: move {open,close,read} from vtable to "struct git_istream" streaming.c | 268 ++++++++++++++++++++++------------------------------ 1 file changed, 115 insertions(+), 153 deletions(-) -- 2.31.1.838.g7ac6e98bb53