summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog29
-rw-r--r--girepository/ginfo.c1
-rw-r--r--girepository/girepository.c25
-rw-r--r--girepository/girmodule.c7
-rw-r--r--girepository/girnode.c23
-rw-r--r--girepository/girparser.c41
-rw-r--r--girepository/gtypelib.c4
-rw-r--r--giscanner/giscannermodule.c4
-rw-r--r--giscanner/scannerlexer.l1
-rw-r--r--giscanner/scannerparser.y2
-rw-r--r--giscanner/sourcescanner.c1
-rw-r--r--giscanner/sourcescanner.h2
-rw-r--r--tests/types/gitesttypes.c1
-rw-r--r--tools/compiler.c2
-rw-r--r--tools/generate.c1
15 files changed, 93 insertions, 51 deletions
diff --git a/ChangeLog b/ChangeLog
index 896a014a..0849aac4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,34 @@
2008-10-16 Tommi Komulainen <tommi.komulainen@iki.fi>
+ 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 <tommi.komulainen@iki.fi>
+
Bug 556541 – access union members through UnionBlob rather than
StructBlob
diff --git a/girepository/ginfo.c b/girepository/ginfo.c
index 86e2ed68..ccb1760a 100644
--- a/girepository/ginfo.c
+++ b/girepository/ginfo.c
@@ -19,6 +19,7 @@
*/
#include <stdlib.h>
+#include <string.h>
#include <glib.h>
#include <glib-object.h>
diff --git a/girepository/girepository.c b/girepository/girepository.c
index 04c32c3b..286417de 100644
--- a/girepository/girepository.c
+++ b/girepository/girepository.c
@@ -23,6 +23,7 @@
#include <stdio.h>
#include <string.h>
+#include <stdlib.h>
#include <glib.h>
#include <glib/gprintf.h>
@@ -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 ad0ecf54..382d186e 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 92946520..f4f337a7 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 0b9e6199..249aa1b3 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 7a7a31f0..1d359838 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 e33b597d..3f21bb19 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 dd02cb4b..9bda1cca 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 69d39a5c..21151bd1 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 34cb57f4..ebdcf0d5 100644
--- a/giscanner/sourcescanner.c
+++ b/giscanner/sourcescanner.c
@@ -21,6 +21,7 @@
*/
#include "sourcescanner.h"
+#include <string.h>
GISourceSymbol *
gi_source_symbol_new (GISourceSymbolType type)
diff --git a/giscanner/sourcescanner.h b/giscanner/sourcescanner.h
index 3e2aacda..9ba8c520 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 b1727156..89b45c1e 100644
--- a/tests/types/gitesttypes.c
+++ b/tests/types/gitesttypes.c
@@ -1,5 +1,6 @@
#include <gitesttypes.h>
+#include <string.h>
/* basic types */
gboolean test_boolean (gboolean in)
diff --git a/tools/compiler.c b/tools/compiler.c
index 6af0a89a..50ba37e3 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 74dd41a0..0e286fb9 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;