• L
    Some more memory leak avoidance · cb115748
    Linus Torvalds 提交于
    This is really the dregs of my effort to not waste memory in git-rev-list,
    and makes barely one percent of a difference in the memory footprint, but
    hey, it's also a pretty small patch.
    
    It discards the parent lists and the commit buffer after the commit has
    been shown by git-rev-list (and "git log" - which already did the commit
    buffer part), and frees the commit list entry that was used by the
    revision walker.
    
    The big win would be to get rid of the "refs" pointer in the object
    structure (another 5%), because it's only used by fsck. That would require
    some pretty major surgery to fsck, though, so I'm timid and did the less
    interesting but much easier part instead.
    
    This (percentually) makes a bigger difference to "git log" and friends,
    since those are walking _just_ commits, and thus the list entries tend to
    be a bigger percentage of the memory use. But the "list all objects" case
    does improve too.
    Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
    Signed-off-by: NJunio C Hamano <junkio@cox.net>
    cb115748
builtin-rev-list.c 8.4 KB