Hi,
I believe I have found a edge case which causes GCC to emit a warning
from the vala compiled code. Specifically it involves the switch
statement when comparing constant strings.
It would appear the solution is just adding a simple cast to _tmp0 =
type_table_name to _tmp0 = (char *)type_table_name .
Just a small detail!
Thanks for the great project!
- Dan Saul
GCC Warning:
SidebarList.c:514: warning: assignment discards qualifiers from
pointer target type
Original Vala source:
private void setup_load_sidebar_database_specified(int64 id, int64
type_id, int64 type_table_id,string type_table_name)
{
switch (type_table_name)
{
case "folders":
{
setup_load_sidebar_database_specified_folder
(id,type_id,type_table_id,type_table_name);
break;
}
case "separators":
{
setup_load_sidebar_database_specified_separator
(id,type_id,type_table_id,type_table_name);
break;
}
default:
{
stdout.printf("unhandled type type_table_name
'%s'\n",type_table_name);
stdout.flush();
break;
}
}
}
Expanded C Source:
static void
file_browser_sidebar_list_setup_load_sidebar_database_specified
(FileBrowserSidebarList* self, gint64 id, gint64 type_id, gint64
type_table_id, const char* type_table_name) {
GQuark _tmp1;
char* _tmp0;
g_return_if_fail (self != NULL);
g_return_if_fail (type_table_name != NULL);
_tmp0 = NULL;
static GQuark _tmp1_label0 = 0;
static GQuark _tmp1_label1 = 0;
_tmp0 = type_table_name; # Line 514
_tmp1 = (NULL == _tmp0 ? 0 : g_quark_from_string (_tmp0));
if (_tmp1 == (0 != _tmp1_label0 ? _tmp1_label0 : (_tmp1_label0 =
g_quark_from_static_string ("folders"))))
do {
{
file_browser_sidebar_list_setup_load_sidebar_database_specified_folder
(self, id, type_id, type_table_id, type_table_name);
break;
}
} while (0); else if (_tmp1 == (0 != _tmp1_label1 ? _tmp1_label1 :
(_tmp1_label1 = g_quark_from_static_string ("separators"))))
do {
{
file_browser_sidebar_list_setup_load_sidebar_database_specified_separator
(self, id, type_id, type_table_id, type_table_name);
break;
}
} while (0); else
do {
{
fprintf (stdout, "unhandled type type_table_name '%s'\n",
type_table_name);
fflush (stdout);
break;
}
} while (0);
}_______________________________________________
Vala-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/vala-list