fiptool: refactor remove_image()

We need not handle the image_head as a special case.  Just use
a double-pointer to simplify the traverse.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
This commit is contained in:
Masahiro Yamada 2017-01-27 13:31:40 +09:00
parent e9e0d2877f
commit 9e866d34ed
1 changed files with 12 additions and 12 deletions

View File

@ -276,20 +276,20 @@ static void free_image(image_t *image)
static void remove_image(image_t *image)
{
image_t *tmp = image_head, *prev;
image_t *tmp, **p = &image_head;
if (tmp == image) {
image_head = tmp->next;
free_image(tmp);
} else {
while (tmp != NULL && tmp != image) {
prev = tmp;
tmp = tmp->next;
}
assert(tmp != NULL);
prev->next = tmp->next;
free_image(tmp);
while (*p) {
if (*p == image)
break;
p = &(*p)->next;
}
assert(*p != NULL);
tmp = *p;
*p = tmp->next;
free_image(tmp);
nr_images--;
}