summaryrefslogtreecommitdiff
path: root/girepository/girnode.c
diff options
context:
space:
mode:
Diffstat (limited to 'girepository/girnode.c')
-rw-r--r--girepository/girnode.c24
1 files changed, 17 insertions, 7 deletions
diff --git a/girepository/girnode.c b/girepository/girnode.c
index 881aa9be..093a3783 100644
--- a/girepository/girnode.c
+++ b/girepository/girnode.c
@@ -28,6 +28,11 @@
#include "girnode.h"
#include "gitypelib-internal.h"
+#ifdef _MSC_VER
+#define strtoll _strtoi64
+#define strtoull _strtoui64
+#endif
+
static gulong string_count = 0;
static gulong unique_string_count = 0;
static gulong string_size = 0;
@@ -228,7 +233,7 @@ _g_ir_node_free (GIrNode *node)
_g_ir_node_free ((GIrNode *)type->parameter_type1);
_g_ir_node_free ((GIrNode *)type->parameter_type2);
- g_free (type->interface);
+ g_free (type->giinterface);
g_strfreev (type->errors);
}
@@ -1005,10 +1010,10 @@ parse_float_value (const gchar *str)
static gboolean
parse_boolean_value (const gchar *str)
{
- if (strcmp (str, "TRUE") == 0)
+ if (g_ascii_strcasecmp (str, "TRUE") == 0)
return TRUE;
- if (strcmp (str, "FALSE") == 0)
+ if (g_ascii_strcasecmp (str, "FALSE") == 0)
return FALSE;
return parse_int_value (str) ? TRUE : FALSE;
@@ -1146,6 +1151,10 @@ _g_ir_find_node (GIrTypelibBuild *build,
target_name = names[1];
}
+ /* find_namespace() may return NULL. */
+ if (target_module == NULL)
+ goto done;
+
for (l = target_module->entries; l; l = l->next)
{
GIrNode *node = (GIrNode *)l->data;
@@ -1157,6 +1166,7 @@ _g_ir_find_node (GIrTypelibBuild *build,
}
}
+done:
g_strfreev (names);
return return_node;
@@ -1244,7 +1254,7 @@ serialize_type (GIrTypelibBuild *build,
GIrNode *iface;
gchar *name;
- iface = find_entry_node (build, node->interface, NULL);
+ iface = find_entry_node (build, node->giinterface, NULL);
if (iface)
{
if (iface->type == G_IR_NODE_XREF)
@@ -1253,8 +1263,8 @@ serialize_type (GIrTypelibBuild *build,
}
else
{
- g_warning ("Interface for type reference %s not found", node->interface);
- name = node->interface;
+ g_warning ("Interface for type reference %s not found", node->giinterface);
+ name = node->giinterface;
}
g_string_append_printf (str, "%s%s", name,
@@ -1483,7 +1493,7 @@ _g_ir_node_build_typelib (GIrNode *node,
iface->reserved = 0;
iface->tag = type->tag;
iface->reserved2 = 0;
- iface->interface = find_entry (build, type->interface);
+ iface->interface = find_entry (build, type->giinterface);
}
break;