Reduce memory leaks in ref-filter.c. We still have leaks, but at least not so much. I use command valgrind --leak-check=full -v ./git for-each-ref to check results. Before: ==24727== LEAK SUMMARY: ==24727== definitely lost: 69,424 bytes in 724 blocks ==24727== indirectly lost: 29,643 bytes in 723 blocks ==24727== possibly lost: 120 bytes in 3 blocks ==24727== still reachable: 16,535 bytes in 185 blocks ==24727== suppressed: 0 bytes in 0 blocks ==24727== Reachable blocks (those to which a pointer was found) are not shown. ==24727== To see them, rerun with: --leak-check=full --show-leak-kinds=all ==24727== ==24727== ERROR SUMMARY: 107 errors from 107 contexts (suppressed: 0 from 0) ==24727== ERROR SUMMARY: 107 errors from 107 contexts (suppressed: 0 from 0) After: ==16419== LEAK SUMMARY: ==16419== definitely lost: 17,144 bytes in 1,447 blocks ==16419== indirectly lost: 0 bytes in 0 blocks ==16419== possibly lost: 120 bytes in 3 blocks ==16419== still reachable: 16,217 bytes in 181 blocks ==16419== suppressed: 0 bytes in 0 blocks ==16419== Reachable blocks (those to which a pointer was found) are not shown. ==16419== To see them, rerun with: --leak-check=full --show-leak-kinds=all ==16419== ==16419== ERROR SUMMARY: 82 errors from 82 contexts (suppressed: 0 from 0) ==16419== ERROR SUMMARY: 82 errors from 82 contexts (suppressed: 0 from 0) Travis build failed, but it also failed in master, so I guess it's not my fault. https://github.com/git/git/pull/538 Thank you! Olga