diff options
Diffstat (limited to 'decorate.c')
-rw-r--r-- | decorate.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/decorate.c b/decorate.c index a5c43c0c14..69aeb142b4 100644 --- a/decorate.c +++ b/decorate.c @@ -81,3 +81,18 @@ void *lookup_decoration(struct decoration *n, const struct object *obj) j = 0; } } + +void clear_decoration(struct decoration *n, void (*free_cb)(void *)) +{ + if (free_cb) { + unsigned int i; + for (i = 0; i < n->size; i++) { + void *d = n->entries[i].decoration; + if (d) + free_cb(d); + } + } + + FREE_AND_NULL(n->entries); + n->size = n->nr = 0; +} |