enumerator: Introduce enumerator__delete
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
6d66c9ae6b
commit
fe27f41973
14
dwarves.c
14
dwarves.c
|
@ -1447,6 +1447,20 @@ void type__delete(struct type *self)
|
||||||
free(self);
|
free(self);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void enumerator__delete(struct enumerator *self)
|
||||||
|
{
|
||||||
|
free(self);
|
||||||
|
}
|
||||||
|
|
||||||
|
void enumeration__delete(struct type *self)
|
||||||
|
{
|
||||||
|
struct enumerator *pos, *n;
|
||||||
|
type__for_each_enumerator_safe(self, pos, n) {
|
||||||
|
list_del_init(&pos->tag.node);
|
||||||
|
enumerator__delete(pos);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void class__add_vtable_entry(struct class *self, struct function *vtable_entry)
|
void class__add_vtable_entry(struct class *self, struct function *vtable_entry)
|
||||||
{
|
{
|
||||||
++self->nr_vtable_entries;
|
++self->nr_vtable_entries;
|
||||||
|
|
11
dwarves.h
11
dwarves.h
|
@ -692,6 +692,16 @@ void type__delete(struct type *self);
|
||||||
&(self)->namespace.tags; \
|
&(self)->namespace.tags; \
|
||||||
list_for_each_entry(pos, __type__for_each_enumerator_head, tag.node)
|
list_for_each_entry(pos, __type__for_each_enumerator_head, tag.node)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* type__for_each_enumerator_safe - safely iterate thru the enumerator entries
|
||||||
|
* @self: struct type instance to iterate
|
||||||
|
* @pos: struct enumerator iterator
|
||||||
|
* @n: struct enumerator temp iterator
|
||||||
|
*/
|
||||||
|
#define type__for_each_enumerator_safe(self, pos, n) \
|
||||||
|
if ((self)->namespace.shared_tags) /* Do nothing */ ; else \
|
||||||
|
list_for_each_entry_safe(pos, n, &(self)->namespace.tags, tag.node)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* type__for_each_member - iterate thru the entries that use space
|
* type__for_each_member - iterate thru the entries that use space
|
||||||
* (data members and inheritance entries)
|
* (data members and inheritance entries)
|
||||||
|
@ -878,6 +888,7 @@ struct enumerator {
|
||||||
uint32_t value;
|
uint32_t value;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
void enumeration__delete(struct type *self);
|
||||||
void enumeration__add(struct type *self, struct enumerator *enumerator);
|
void enumeration__add(struct type *self, struct enumerator *enumerator);
|
||||||
size_t enumeration__fprintf(const struct tag *tag_self,
|
size_t enumeration__fprintf(const struct tag *tag_self,
|
||||||
const struct conf_fprintf *conf, FILE *fp);
|
const struct conf_fprintf *conf, FILE *fp);
|
||||||
|
|
Loading…
Reference in New Issue