Revision ec6cd14c7a869b32776c1d3387afc93f369aea62 authored by René Scharfe on 11 February 2017, 13:58:44 UTC, committed by Junio C Hamano on 11 February 2017, 19:29:12 UTC
Add a semantic patch for removing checks that cause free(3) to only be called with a NULL pointer, as that must be a programming mistake. Signed-off-by: Rene Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
1 parent 3b9e3c2
mru.c
#include "cache.h"
#include "mru.h"
void mru_append(struct mru *mru, void *item)
{
struct mru_entry *cur = xmalloc(sizeof(*cur));
cur->item = item;
cur->prev = mru->tail;
cur->next = NULL;
if (mru->tail)
mru->tail->next = cur;
else
mru->head = cur;
mru->tail = cur;
}
void mru_mark(struct mru *mru, struct mru_entry *entry)
{
/* If we're already at the front of the list, nothing to do */
if (mru->head == entry)
return;
/* Otherwise, remove us from our current slot... */
if (entry->prev)
entry->prev->next = entry->next;
if (entry->next)
entry->next->prev = entry->prev;
else
mru->tail = entry->prev;
/* And insert us at the beginning. */
entry->prev = NULL;
entry->next = mru->head;
if (mru->head)
mru->head->prev = entry;
mru->head = entry;
}
void mru_clear(struct mru *mru)
{
struct mru_entry *p = mru->head;
while (p) {
struct mru_entry *to_free = p;
p = p->next;
free(to_free);
}
mru->head = mru->tail = NULL;
}
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...