1
2/*
3 * Copyright 2006 The Android Open Source Project
4 *
5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file.
7 */
8
9
10#include "SkTagList.h"
11
12SkTagList::~SkTagList()
13{
14}
15
16SkTagList* SkTagList::Find(SkTagList* rec, U8CPU tag)
17{
18    SkASSERT(tag < kSkTagListCount);
19
20    while (rec != NULL)
21    {
22        if (rec->fTag == tag)
23            break;
24        rec = rec->fNext;
25    }
26    return rec;
27}
28
29void SkTagList::DeleteTag(SkTagList** head, U8CPU tag)
30{
31    SkASSERT(tag < kSkTagListCount);
32
33    SkTagList* rec = *head;
34    SkTagList* prev = NULL;
35
36    while (rec != NULL)
37    {
38        SkTagList* next = rec->fNext;
39
40        if (rec->fTag == tag)
41        {
42            if (prev)
43                prev->fNext = next;
44            else
45                *head = next;
46            delete rec;
47            break;
48        }
49        prev = rec;
50        rec = next;
51    }
52}
53
54void SkTagList::DeleteAll(SkTagList* rec)
55{
56    while (rec)
57    {
58        SkTagList* next = rec->fNext;
59        delete rec;
60        rec = next;
61    }
62}
63