From 7e1fa913da93b142b10ea3a5105f9cb58afe183e Mon Sep 17 00:00:00 2001 From: Tommi Komulainen Date: Thu, 16 Oct 2008 17:07:05 +0000 Subject: [PATCH] =?utf8?q?Bug=20556543=20=E2=80=93=20reduce=20compiler=20w?= =?utf8?q?arnings?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 2008-10-16 Tommi Komulainen Bug 556543 – reduce compiler warnings * girepository/ginfo.c: * girepository/girepository.c (register_internal, count_interfaces, find_interface, find_namespace_version, parse_version, g_irepository_require): * girepository/girmodule.c (g_ir_module_build_typelib): * girepository/girnode.c (init_stats, dump_stats, _g_irnode_init_stats, _g_irnode_dump_stats, g_ir_node_can_have_member): * girepository/girparser.c (firstpass_end_element_handler, locate_gir, parse_basic, parse_type_internal, resolve_aliases, start_alias, start_type, end_type_top, parse_include, cleanup, post_filter): * girepository/gtypelib.c (validate_function_blob, validate_enum_blob): * giscanner/giscannermodule.c (directive_get_options, type_get_child_list): * giscanner/scannerlexer.l (parse_gtkdoc): * giscanner/scannerparser.y (ctype_free): * giscanner/sourcescanner.c: * giscanner/sourcescanner.h (gi_source_scanner_parse_macros): * tests/types/gitesttypes.c: * tools/compiler.c (main): * tools/generate.c (write_repository): Remove unused variables and code, add missing includes, declarations and case statements. svn path=/trunk/; revision=730 --- ChangeLog | 29 +++++++++++++++++++++++++++++ girepository/ginfo.c | 1 + girepository/girepository.c | 25 +++---------------------- girepository/girmodule.c | 7 +++++-- girepository/girnode.c | 23 +++++++++++++++++++++-- girepository/girparser.c | 41 ++++++++++++++++++++++++----------------- girepository/gtypelib.c | 4 +--- giscanner/giscannermodule.c | 4 ++-- giscanner/scannerlexer.l | 1 - giscanner/scannerparser.y | 2 ++ giscanner/sourcescanner.c | 1 + giscanner/sourcescanner.h | 2 ++ tests/types/gitesttypes.c | 1 + tools/compiler.c | 2 +- tools/generate.c | 1 - 15 files changed, 93 insertions(+), 51 deletions(-) diff --git a/ChangeLog b/ChangeLog index 896a014..0849aac 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,34 @@ 2008-10-16 Tommi Komulainen + Bug 556543 – reduce compiler warnings + + * girepository/ginfo.c: + * girepository/girepository.c (register_internal, + count_interfaces, find_interface, find_namespace_version, + parse_version, g_irepository_require): + * girepository/girmodule.c (g_ir_module_build_typelib): + * girepository/girnode.c (init_stats, dump_stats, + _g_irnode_init_stats, _g_irnode_dump_stats, + g_ir_node_can_have_member): + * girepository/girparser.c (firstpass_end_element_handler, + locate_gir, parse_basic, parse_type_internal, resolve_aliases, + start_alias, start_type, end_type_top, parse_include, cleanup, + post_filter): + * girepository/gtypelib.c (validate_function_blob, validate_enum_blob): + * giscanner/giscannermodule.c (directive_get_options, + type_get_child_list): + * giscanner/scannerlexer.l (parse_gtkdoc): + * giscanner/scannerparser.y (ctype_free): + * giscanner/sourcescanner.c: + * giscanner/sourcescanner.h (gi_source_scanner_parse_macros): + * tests/types/gitesttypes.c: + * tools/compiler.c (main): + * tools/generate.c (write_repository): Remove unused variables + and code, add missing includes, declarations and case + statements. + +2008-10-16 Tommi Komulainen + Bug 556541 – access union members through UnionBlob rather than StructBlob diff --git a/girepository/ginfo.c b/girepository/ginfo.c index 86e2ed6..ccb1760 100644 --- a/girepository/ginfo.c +++ b/girepository/ginfo.c @@ -19,6 +19,7 @@ */ #include +#include #include #include diff --git a/girepository/girepository.c b/girepository/girepository.c index 04c32c3..286417d 100644 --- a/girepository/girepository.c +++ b/girepository/girepository.c @@ -23,6 +23,7 @@ #include #include +#include #include #include @@ -261,8 +262,6 @@ register_internal (GIRepository *repository, Header *header; const gchar *namespace; const gchar *version; - gboolean was_loaded; - gboolean currently_lazy; g_return_val_if_fail (typelib != NULL, FALSE); @@ -418,17 +417,6 @@ g_irepository_get_default (void) return get_repository (NULL); } -static void -count_interfaces (gpointer key, - gpointer value, - gpointer data) -{ - guchar *typelib = ((GTypelib *) value)->data; - gint *n_interfaces = (gint *)data; - - *n_interfaces += ((Header *)typelib)->n_local_entries; -} - /** * g_irepository_get_n_infos * @repository: A #GIRepository, may be %NULL for the default @@ -478,7 +466,6 @@ find_interface (gpointer key, IfaceData *iface_data = (IfaceData *)data; gint index; gint n_entries; - guint32 offset; const gchar *name; const gchar *type; DirEntry *entry; @@ -804,7 +791,6 @@ find_namespace_version (const gchar *namespace, for (ldir = search_path; ldir; ldir = ldir->next) { - Header *header; char *path = g_build_filename (ldir->data, fname, NULL); mfile = g_mapped_file_new (path, FALSE, &error); @@ -827,7 +813,7 @@ parse_version (const char *version, int *minor) { const char *dot; - const char *end; + char *end; *major = strtol (version, &end, 10); dot = strchr (version, '.'); @@ -1012,15 +998,11 @@ g_irepository_require (GIRepository *repository, GIRepositoryLoadFlags flags, GError **error) { - const char *dir; GMappedFile *mfile; gboolean ret = FALSE; - GError *error1 = NULL; Header *header; GTypelib *typelib = NULL; - const gchar *typelib_namespace, *typelib_version, *shlib_fname; - GModule *module; - guint32 shlib; + const gchar *typelib_namespace, *typelib_version; gboolean allow_lazy = (flags & G_IREPOSITORY_LOAD_FLAG_LAZY) > 0; gboolean is_lazy; char *version_conflict = NULL; @@ -1056,7 +1038,6 @@ g_irepository_require (GIRepository *repository, if (mfile == NULL) { - const char *error_fmt; if (version != NULL) g_set_error (error, G_IREPOSITORY_ERROR, G_IREPOSITORY_ERROR_TYPELIB_NOT_FOUND, diff --git a/girepository/girmodule.c b/girepository/girmodule.c index ad0ecf5..382d186 100644 --- a/girepository/girmodule.c +++ b/girepository/girmodule.c @@ -24,6 +24,9 @@ #include "girmodule.h" #include "girnode.h" +void _g_irnode_init_stats (void); +void _g_irnode_dump_stats (void); + #define ALIGN_VALUE(this, boundary) \ (( ((unsigned long)(this)) + (((unsigned long)(boundary)) -1)) & (~(((unsigned long)(boundary))-1))) @@ -111,7 +114,7 @@ g_ir_module_build_typelib (GIrModule *module, } restart: - init_stats (); + _g_irnode_init_stats (); strings = g_hash_table_new (g_str_hash, g_str_equal); types = g_hash_table_new (g_str_hash, g_str_equal); n_entries = g_list_length (module->entries); @@ -243,7 +246,7 @@ g_ir_module_build_typelib (GIrModule *module, entry++; } - dump_stats (); + _g_irnode_dump_stats (); header->annotations = offset2; diff --git a/girepository/girnode.c b/girepository/girnode.c index 9294652..f4f337a 100644 --- a/girepository/girnode.c +++ b/girepository/girnode.c @@ -34,7 +34,7 @@ static gulong types_count = 0; static gulong unique_types_count = 0; void -init_stats (void) +_g_irnode_init_stats (void) { string_count = 0; unique_string_count = 0; @@ -45,7 +45,7 @@ init_stats (void) } void -dump_stats (void) +_g_irnode_dump_stats (void) { g_message ("%lu strings (%lu before sharing), %lu bytes (%lu before sharing)", unique_string_count, string_count, unique_string_size, string_size); @@ -870,6 +870,25 @@ g_ir_node_can_have_member (GIrNode *node) case G_IR_NODE_STRUCT: case G_IR_NODE_UNION: return TRUE; + /* list others individually rather than with default: so that compiler + * warns if new node types are added without adding them to the switch + */ + case G_IR_NODE_INVALID: + case G_IR_NODE_FUNCTION: + case G_IR_NODE_CALLBACK: + case G_IR_NODE_ENUM: + case G_IR_NODE_FLAGS: + case G_IR_NODE_CONSTANT: + case G_IR_NODE_ERROR_DOMAIN: + case G_IR_NODE_PARAM: + case G_IR_NODE_TYPE: + case G_IR_NODE_PROPERTY: + case G_IR_NODE_SIGNAL: + case G_IR_NODE_VALUE: + case G_IR_NODE_VFUNC: + case G_IR_NODE_FIELD: + case G_IR_NODE_XREF: + return FALSE; }; return FALSE; } diff --git a/girepository/girparser.c b/girepository/girparser.c index 0b9e619..249aa1b 100644 --- a/girepository/girparser.c +++ b/girepository/girparser.c @@ -116,8 +116,6 @@ firstpass_end_element_handler (GMarkupParseContext *context, gpointer user_data, GError **error) { - ParseContext *ctx = user_data; - } static GMarkupParser firstpass_parser = @@ -136,8 +134,6 @@ locate_gir (const char *name, const char *version, const char * const* extra_pat const gchar *const *dir; char *girname; char *path = NULL; - GSList *link; - gboolean firstpass = TRUE; datadirs = g_get_system_data_dirs (); @@ -267,9 +263,6 @@ parse_basic (const char *str) { gint i; gint n_basic = G_N_ELEMENTS (basic_types); - gchar *temporary_type = NULL; - const gchar *start; - const gchar *end; for (i = 0; i < n_basic; i++) { @@ -414,7 +407,7 @@ parse_type_internal (const gchar *str, char **next, gboolean in_glib, g_free (temporary_type); return type; - error: +/* error: */ g_ir_node_free ((GIrNode *)type); g_free (temporary_type); return NULL; @@ -430,7 +423,7 @@ resolve_aliases (ParseContext *ctx, const gchar *type) seen_values = g_slist_prepend (seen_values, (char*)type); while (g_hash_table_lookup_extended (ctx->aliases, type, &orig, &value)) { - g_debug ("Resolved: %s => %s", type, value); + g_debug ("Resolved: %s => %s", type, (char*)value); type = value; if (g_slist_find_custom (seen_values, type, (GCompareFunc)strcmp) != NULL) @@ -444,11 +437,9 @@ resolve_aliases (ParseContext *ctx, const gchar *type) static GIrNodeType * parse_type (ParseContext *ctx, const gchar *type) { - gchar *str; GIrNodeType *node; const BasicTypeInfo *basic; gboolean in_glib, in_gobject; - gboolean matched_special = FALSE; in_glib = strcmp (ctx->namespace, "GLib") == 0; in_gobject = strcmp (ctx->namespace, "GObject") == 0; @@ -944,7 +935,6 @@ start_alias (GMarkupParseContext *context, { const gchar *name; const gchar *target; - const gchar *type; char *key; char *value; @@ -1474,6 +1464,28 @@ start_type (GMarkupParseContext *context, vfunc->is_varargs = TRUE; } break; + /* list others individually rather than with default: so that compiler + * warns if new node types are added without adding them to the switch + */ + case G_IR_NODE_INVALID: + case G_IR_NODE_ENUM: + case G_IR_NODE_FLAGS: + case G_IR_NODE_CONSTANT: + case G_IR_NODE_ERROR_DOMAIN: + case G_IR_NODE_PARAM: + case G_IR_NODE_TYPE: + case G_IR_NODE_PROPERTY: + case G_IR_NODE_SIGNAL: + case G_IR_NODE_VALUE: + case G_IR_NODE_FIELD: + case G_IR_NODE_XREF: + case G_IR_NODE_STRUCT: + case G_IR_NODE_BOXED: + case G_IR_NODE_OBJECT: + case G_IR_NODE_INTERFACE: + case G_IR_NODE_UNION: + g_assert_not_reached (); + break; } } ctx->type_stack = NULL; @@ -1496,7 +1508,6 @@ start_type (GMarkupParseContext *context, { const char *zero; const char *len; - int i; typenode = (GIrNodeType *)g_ir_node_new (G_IR_NODE_TYPE); @@ -1604,7 +1615,6 @@ end_type_top (ParseContext *ctx) static void end_type_recurse (ParseContext *ctx) { - GList *types; GIrNodeType *parent; GIrNodeType *param = NULL; @@ -2051,7 +2061,6 @@ parse_include (GMarkupParseContext *context, GError **error) { ParseContext sub_ctx = { 0 }; - GMarkupParseContext *sub_context; gchar *buffer; gsize length; char *girpath; @@ -2748,7 +2757,6 @@ cleanup (GMarkupParseContext *context, { ParseContext *ctx = user_data; GList *m; - int line_number, char_number; for (m = ctx->modules; m; m = m->next) g_ir_module_free (m->data); @@ -2800,7 +2808,6 @@ post_filter (GIrModule *module) iter = module->entries; while (iter) { - GList *link = iter; GIrNode *node = iter->data; iter = iter->next; diff --git a/girepository/gtypelib.c b/girepository/gtypelib.c index 7a7a31f..1d35983 100644 --- a/girepository/gtypelib.c +++ b/girepository/gtypelib.c @@ -808,7 +808,6 @@ validate_function_blob (ValidateContext *ctx, blob->signature, error); InterfaceTypeBlob *iface_type; - InterfaceBlob *iface; if (!simple) return FALSE; @@ -1281,8 +1280,7 @@ validate_enum_blob (ValidateContext *ctx, { GTypelib *typelib = ctx->typelib; EnumBlob *blob; - ValueBlob *v1, *v2; - gint i, j; + gint i; if (typelib->len < offset + sizeof (EnumBlob)) { diff --git a/giscanner/giscannermodule.c b/giscanner/giscannermodule.c index e33b597..3f21bb1 100644 --- a/giscanner/giscannermodule.c +++ b/giscanner/giscannermodule.c @@ -126,7 +126,7 @@ static PyObject * directive_get_options (PyGISourceDirective *self, void *context) { - GSList *l, *symbols; + GSList *l; PyObject *list; int i = 0; @@ -327,7 +327,7 @@ static PyObject * type_get_child_list (PyGISourceType *self, void *context) { - GList *l, *symbols; + GList *l; PyObject *list; int i = 0; diff --git a/giscanner/scannerlexer.l b/giscanner/scannerlexer.l index dd02cb4..9bda1cc 100644 --- a/giscanner/scannerlexer.l +++ b/giscanner/scannerlexer.l @@ -252,7 +252,6 @@ parse_gtkdoc (GISourceScanner *scanner, char *ptr = g_strdup (parts[1]); char *start; char *end; - char **option_parts, **option_part; options = NULL; start = strchr (ptr, '('); diff --git a/giscanner/scannerparser.y b/giscanner/scannerparser.y index 69d39a5..21151bd 100644 --- a/giscanner/scannerparser.y +++ b/giscanner/scannerparser.y @@ -43,6 +43,8 @@ extern char *yytext; extern int yylex (GISourceScanner *scanner); static void yyerror (GISourceScanner *scanner, const char *str); +extern void ctype_free (GISourceType * type); + static int last_enum_value = -1; static GHashTable *const_table = NULL; %} diff --git a/giscanner/sourcescanner.c b/giscanner/sourcescanner.c index 34cb57f..ebdcf0d 100644 --- a/giscanner/sourcescanner.c +++ b/giscanner/sourcescanner.c @@ -21,6 +21,7 @@ */ #include "sourcescanner.h" +#include GISourceSymbol * gi_source_symbol_new (GISourceSymbolType type) diff --git a/giscanner/sourcescanner.h b/giscanner/sourcescanner.h index 3e2aacd..9ba8c52 100644 --- a/giscanner/sourcescanner.h +++ b/giscanner/sourcescanner.h @@ -143,6 +143,8 @@ gboolean gi_source_scanner_lex_filename (GISourceScanner *igener const gchar *filename); gboolean gi_source_scanner_parse_file (GISourceScanner *igenerator, FILE *file); +void gi_source_scanner_parse_macros (GISourceScanner *scanner, + GList *filenames); void gi_source_scanner_set_macro_scan (GISourceScanner *scanner, gboolean macro_scan); GSList * gi_source_scanner_get_symbols (GISourceScanner *scanner); diff --git a/tests/types/gitesttypes.c b/tests/types/gitesttypes.c index b172715..89b45c1 100644 --- a/tests/types/gitesttypes.c +++ b/tests/types/gitesttypes.c @@ -1,5 +1,6 @@ #include +#include /* basic types */ gboolean test_boolean (gboolean in) diff --git a/tools/compiler.c b/tools/compiler.c index 6af0a89..50ba37e 100644 --- a/tools/compiler.c +++ b/tools/compiler.c @@ -169,7 +169,7 @@ main (int argc, char ** argv) { GOptionContext *context; GError *error = NULL; - GList *c, *m, *modules; + GList *m, *modules; gint i; g_typelib_check_sanity (); diff --git a/tools/generate.c b/tools/generate.c index 74dd41a..0e286fb 100644 --- a/tools/generate.c +++ b/tools/generate.c @@ -1121,7 +1121,6 @@ write_repository (const char *namespace, gboolean needs_prefix) { FILE *ofile; - gchar *ns; gint i, j; char **dependencies; GIRepository *repository; -- 2.7.4