From 787d25edf045de8df1460a6a975186df0f8d402f Mon Sep 17 00:00:00 2001 From: Haru Date: Sat, 20 Feb 2016 21:13:19 +0100 Subject: [PATCH] Corrected some const-correctness errors in libconfig Signed-off-by: Haru --- 3rdparty/libconfig/extra/gen/grammar.y | 6 +++--- 3rdparty/libconfig/grammar.c | 6 +++--- 3rdparty/libconfig/libconfig.c | 8 ++++---- 3rdparty/libconfig/libconfig.h | 6 +++--- 3rdparty/libconfig/scanctx.c | 24 +++++++++--------------- 3rdparty/libconfig/scanctx.h | 6 +++--- 6 files changed, 25 insertions(+), 31 deletions(-) diff --git a/3rdparty/libconfig/extra/gen/grammar.y b/3rdparty/libconfig/extra/gen/grammar.y index ef8ed4f1884..a99b8cf1bf6 100644 --- a/3rdparty/libconfig/extra/gen/grammar.y +++ b/3rdparty/libconfig/extra/gen/grammar.y @@ -54,7 +54,7 @@ extern int libconfig_yyget_lineno(); static const char *err_array_elem_type = "mismatched element type in array"; static const char *err_duplicate_setting = "duplicate setting name"; -#define _delete(P) free((void *)(P)) +#define _delete(P) free(P) #define IN_ARRAY() \ (ctx->parent && (ctx->parent->type == CONFIG_TYPE_ARRAY)) @@ -332,7 +332,7 @@ simple_value: { if(IN_ARRAY() || IN_LIST()) { - const char *s = parsectx_take_string(ctx); + char *s = parsectx_take_string(ctx); struct config_setting_t *e = config_setting_set_string_elem(ctx->parent, -1, s); _delete(s); @@ -348,7 +348,7 @@ simple_value: } else { - const char *s = parsectx_take_string(ctx); + char *s = parsectx_take_string(ctx); config_setting_set_string(ctx->setting, s); _delete(s); } diff --git a/3rdparty/libconfig/grammar.c b/3rdparty/libconfig/grammar.c index 7d5757b2f8c..6cd6fb722d2 100644 --- a/3rdparty/libconfig/grammar.c +++ b/3rdparty/libconfig/grammar.c @@ -95,7 +95,7 @@ extern int libconfig_yyget_lineno(); static const char *err_array_elem_type = "mismatched element type in array"; static const char *err_duplicate_setting = "duplicate setting name"; -#define _delete(P) free((void *)(P)) +#define _delete(P) free(P) #define IN_ARRAY() \ (ctx->parent && (ctx->parent->type == CONFIG_TYPE_ARRAY)) @@ -1751,7 +1751,7 @@ YYSTYPE yylval YY_INITIAL_VALUE(yyval_default); { if(IN_ARRAY() || IN_LIST()) { - const char *s = parsectx_take_string(ctx); + char *s = parsectx_take_string(ctx); struct config_setting_t *e = config_setting_set_string_elem(ctx->parent, -1, s); _delete(s); @@ -1767,7 +1767,7 @@ YYSTYPE yylval YY_INITIAL_VALUE(yyval_default); } else { - const char *s = parsectx_take_string(ctx); + char *s = parsectx_take_string(ctx); config_setting_set_string(ctx->setting, s); _delete(s); } diff --git a/3rdparty/libconfig/libconfig.c b/3rdparty/libconfig/libconfig.c index 696f5fc08d1..5b6eaac73d8 100644 --- a/3rdparty/libconfig/libconfig.c +++ b/3rdparty/libconfig/libconfig.c @@ -49,8 +49,8 @@ #define CHUNK_SIZE 16 #define FLOAT_PRECISION DBL_DIG -#define _new(T) (T *)calloc(1, sizeof(T)) /* zeroed */ -#define _delete(P) free((void *)(P)) +#define _new(T) calloc(1, sizeof(T)) /* zeroed */ +#define _delete(P) free(P) /* ------------------------------------------------------------------------- */ @@ -567,7 +567,7 @@ static int __config_read(struct config_t *config, FILE *stream, const char *file /* Reinitialize the config */ void (*destructor)(void *) = config->destructor; - const char *include_dir = config->include_dir; + char *include_dir = config->include_dir; unsigned short tab_width = config->tab_width; int options = config->options; @@ -743,7 +743,7 @@ int config_write_file(struct config_t *config, const char *filename) void config_destroy(struct config_t *config) { unsigned int count = config->num_filenames; - const char **f; + char **f; __config_setting_destroy(config->root); diff --git a/3rdparty/libconfig/libconfig.h b/3rdparty/libconfig/libconfig.h index 58c1f914e8a..69f2e6dbf5c 100644 --- a/3rdparty/libconfig/libconfig.h +++ b/3rdparty/libconfig/libconfig.h @@ -109,12 +109,12 @@ struct config_t int options; unsigned short tab_width; short default_format; - const char *include_dir; + char *include_dir; const char *error_text; const char *error_file; int error_line; enum config_error_t error_type; - const char **filenames; + char **filenames; unsigned int num_filenames; }; @@ -206,7 +206,7 @@ extern LIBCONFIG_API struct config_setting_t *config_setting_set_string_elem( struct config_setting_t *setting, int idx, const char *value); #define /* const char * */ config_get_include_dir(/* const struct config_t * */ C) \ - ((C)->include_dir) + ((const char *)(C)->include_dir) #define /* int */ config_setting_type(/* const struct config_setting_t * */ S) \ ((S)->type) diff --git a/3rdparty/libconfig/scanctx.c b/3rdparty/libconfig/scanctx.c index b3d9a6379ef..94ba73edd3d 100644 --- a/3rdparty/libconfig/scanctx.c +++ b/3rdparty/libconfig/scanctx.c @@ -38,25 +38,23 @@ static const char *err_include_too_deep = "include file nesting too deep"; /* ------------------------------------------------------------------------- */ static const char *__scanctx_add_filename(struct scan_context *ctx, - const char *filename) + char *filename) { unsigned int count = ctx->num_filenames; - const char **f; + char **f; for(f = ctx->filenames; count > 0; ++f, --count) { if(!strcmp(*f, filename)) { - free((void *)filename); + free(filename); return(*f); /* already in list */ } } if((ctx->num_filenames % CHUNK_SIZE) == 0) { - ctx->filenames = (const char **)realloc( - (void *)ctx->filenames, - (ctx->num_filenames + CHUNK_SIZE) * sizeof(const char *)); + ctx->filenames = realloc(ctx->filenames, (ctx->num_filenames + CHUNK_SIZE) * sizeof(char *)); } ctx->filenames[ctx->num_filenames] = filename; @@ -69,16 +67,14 @@ static const char *__scanctx_add_filename(struct scan_context *ctx, void scanctx_init(struct scan_context *ctx, const char *top_filename) { memset(ctx, 0, sizeof(struct scan_context)); -#ifndef __clang_analyzer__ // FIXME: Clang's static analyzer doesn't like this if(top_filename) ctx->top_filename = __scanctx_add_filename(ctx, strdup(top_filename)); -#endif // __clang_analyzer__ } /* ------------------------------------------------------------------------- */ -const char **scanctx_cleanup(struct scan_context *ctx, - unsigned int *num_filenames) +char **scanctx_cleanup(struct scan_context *ctx, + unsigned int *num_filenames) { int i; @@ -97,7 +93,7 @@ FILE *scanctx_push_include(struct scan_context *ctx, void *buffer, const char **error) { FILE *fp = NULL; - const char *file; + char *file; char *full_file = NULL; *error = NULL; @@ -119,20 +115,18 @@ FILE *scanctx_push_include(struct scan_context *ctx, void *buffer, } fp = fopen(full_file ? full_file : file, "rt"); - free((void *)full_file); + free(full_file); if(fp) { ctx->streams[ctx->depth] = fp; -#ifndef __clang_analyzer__ // FIXME: Clang's static analyzer doesn't like this ctx->files[ctx->depth] = __scanctx_add_filename(ctx, file); -#endif // __clang_analyzer__ ctx->buffers[ctx->depth] = buffer; ++(ctx->depth); } else { - free((void *)file); + free(file); *error = err_bad_include; } diff --git a/3rdparty/libconfig/scanctx.h b/3rdparty/libconfig/scanctx.h index 004523e2a76..a5939ca0585 100644 --- a/3rdparty/libconfig/scanctx.h +++ b/3rdparty/libconfig/scanctx.h @@ -40,13 +40,13 @@ struct scan_context FILE *streams[MAX_INCLUDE_DEPTH]; int depth; strbuf_t string; - const char **filenames; + char **filenames; unsigned int num_filenames; }; extern void scanctx_init(struct scan_context *ctx, const char *top_filename); -extern const char **scanctx_cleanup(struct scan_context *ctx, - unsigned int *num_filenames); +extern char **scanctx_cleanup(struct scan_context *ctx, + unsigned int *num_filenames); extern FILE *scanctx_push_include(struct scan_context *ctx, void *prev_buffer, const char **error);