qom: Make enum string tables const-correct

The enum string table parameters in various QOM/QAPI methods
are declared 'const char *strings[]'. This results in const
warnings if passed a variable that was declared as

   static const char * const strings[] = { .... };

Add the extra const annotation to the parameters, since
neither the string elements, nor the array itself should
ever be modified.

Backports commit 2e4450ff432daef524cb3557fca68a3b7b5c7823 from qemu
This commit is contained in:
Daniel P. Berrange 2018-02-19 16:02:14 -05:00 committed by Lioncash
parent 21b2c489af
commit 767e900547
No known key found for this signature in database
GPG key ID: 4E3C3CC1031BA9C7
5 changed files with 11 additions and 10 deletions

View file

@ -30,7 +30,7 @@ struct Visitor
GenericList *(*next_list)(Visitor *v, GenericList **list);
void (*end_list)(Visitor *v);
void (*type_enum)(Visitor *v, int *obj, const char *strings[],
void (*type_enum)(Visitor *v, int *obj, const char * const strings[],
const char *kind, const char *name, Error **errp);
void (*get_next_type)(Visitor *v, int *kind, const int *qobjects,
const char *name, Error **errp);
@ -63,9 +63,9 @@ struct Visitor
void (*end_union)(Visitor *v, bool data_present, Error **errp);
};
void input_type_enum(Visitor *v, int *obj, const char *strings[],
void input_type_enum(Visitor *v, int *obj, const char * const strings[],
const char *kind, const char *name, Error **errp);
void output_type_enum(Visitor *v, int *obj, const char *strings[],
void output_type_enum(Visitor *v, int *obj, const char * const strings[],
const char *kind, const char *name, Error **errp);
#endif

View file

@ -43,7 +43,7 @@ void visit_optional(Visitor *v, bool *present, const char *name,
Error **errp);
void visit_get_next_type(Visitor *v, int *obj, const int *qtypes,
const char *name, Error **errp);
void visit_type_enum(Visitor *v, int *obj, const char *strings[],
void visit_type_enum(Visitor *v, int *obj, const char * const strings[],
const char *kind, const char *name, Error **errp);
void visit_type_int(Visitor *v, int64_t *obj, const char *name, Error **errp);
void visit_type_uint8(Visitor *v, uint8_t *obj, const char *name, Error **errp);

View file

@ -161,7 +161,8 @@ static void qapi_dealloc_type_size(Visitor *v, uint64_t *obj, const char *name,
{
}
static void qapi_dealloc_type_enum(Visitor *v, int *obj, const char *strings[],
static void qapi_dealloc_type_enum(Visitor *v, int *obj,
const char * const strings[],
const char *kind, const char *name,
Error **errp)
{

View file

@ -90,7 +90,7 @@ void visit_get_next_type(Visitor *v, int *obj, const int *qtypes,
}
}
void visit_type_enum(Visitor *v, int *obj, const char *strings[],
void visit_type_enum(Visitor *v, int *obj, const char * const strings[],
const char *kind, const char *name, Error **errp)
{
v->type_enum(v, obj, strings, kind, name, errp);
@ -255,7 +255,7 @@ void visit_type_number(Visitor *v, double *obj, const char *name, Error **errp)
v->type_number(v, obj, name, errp);
}
void output_type_enum(Visitor *v, int *obj, const char *strings[],
void output_type_enum(Visitor *v, int *obj, const char * const strings[],
const char *kind, const char *name,
Error **errp)
{
@ -274,7 +274,7 @@ void output_type_enum(Visitor *v, int *obj, const char *strings[],
visit_type_str(v, &enum_str, name, errp);
}
void input_type_enum(Visitor *v, int *obj, const char *strings[],
void input_type_enum(Visitor *v, int *obj, const char * const strings[],
const char *kind, const char *name,
Error **errp)
{

View file

@ -105,7 +105,7 @@ struct %(name)s
def generate_enum_lookup(name, values):
ret = mcgen('''
const char *%(name)s_lookup[] = {
const char * const %(name)s_lookup[] = {
''',
name=c_name(name))
i = 0
@ -125,7 +125,7 @@ const char *%(name)s_lookup[] = {
def generate_enum(name, values):
name = c_name(name)
lookup_decl = mcgen('''
extern const char *%(name)s_lookup[];
extern const char * const %(name)s_lookup[];
''',
name=name)