From: Uwe Kleine-König Date: Tue, 26 Feb 2008 06:59:53 GMT Subject: Re: [PATCH] Remove useless if-before-free tests. Message-ID: <20080226065953.GA25073@informatik.uni-freiburg.de> In-Reply-To: <7vd4qo7fsc.fsf@gitster.siamese.dyndns.org> Hello Junio, > I am not interested in automating useless "if (x) free(x)" > tests, but one thing I recently wanted but did not know a handy > tool for was to find all the calls to free() that free a pointer > to an object of a particular type. More specifically, we seem > to allocate and free many "struct commit_list", and I wanted to > introduce a custom bulk allocator. Allocate many of them in a > block, hand out one by one, and tell callers to hand them back > not to free() but to the allocator so that it can keep the > returned ones on a linked list and hand them back again when the > next call wanted to allocate one without actually calling > xmalloc()). But in order to do so, missed conversion from > malloc() to the custom allocator is not fatal (just wasteful), > but forgetting to convert free() really is. Maybe http://www.emn.fr/x-info/coccinelle/ can help you? I think it could automate if (x) free(x), too. Best regards Uwe -- Uwe Kleine-König