Author: juergbi
Date: Fri Jan 18 21:17:18 2008
New Revision: 858
URL: http://svn.gnome.org/viewvc/vala?rev=858&view=rev
Log:
2008-01-18 Juerg Billeter <[EMAIL PROTECTED]>
* vala/valavoidtype.vala: implement get_cname method
* gobject/valaccodegenerator.vala: cast function pointers to callback
type, fixes bug 510262
Modified:
trunk/ChangeLog
trunk/gobject/valaccodegenerator.vala
trunk/vala/valavoidtype.vala
Modified: trunk/gobject/valaccodegenerator.vala
==============================================================================
--- trunk/gobject/valaccodegenerator.vala (original)
+++ trunk/gobject/valaccodegenerator.vala Fri Jan 18 21:17:18 2008
@@ -2880,7 +2880,7 @@
return cexpr;
}
- if (expression_type.data_type == target_type.data_type) {
+ if (expression_type.data_type != null &&
expression_type.data_type == target_type.data_type) {
// same type, no cast required
return cexpr;
}
@@ -2891,7 +2891,7 @@
return convert_to_generic_pointer (cexpr,
expression_type);
}
- if (expression_type.data_type == null &&
expression_type.type_parameter == null) {
+ if (expression_type is NullType) {
// null literal, no cast required when not converting
to generic type pointer
return cexpr;
}
@@ -2900,6 +2900,8 @@
return new InstanceCast (cexpr, target_type.data_type);
} else if (target_type.data_type != null &&
target_type.data_type.is_reference_type () && expression_type.get_cname () !=
target_type.get_cname ()) {
return new CCodeCastExpression (cexpr,
target_type.get_cname ());
+ } else if (target_type is DelegateType && expression_type is
MethodType) {
+ return new CCodeCastExpression (cexpr,
target_type.get_cname ());
} else {
return cexpr;
}
Modified: trunk/vala/valavoidtype.vala
==============================================================================
--- trunk/vala/valavoidtype.vala (original)
+++ trunk/vala/valavoidtype.vala Fri Jan 18 21:17:18 2008
@@ -1,6 +1,6 @@
/* valavoidtype.vala
*
- * Copyright (C) 2007 Jürg Billeter
+ * Copyright (C) 2007-2008 Jürg Billeter
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -36,4 +36,8 @@
public override string! to_string () {
return "void";
}
+
+ public override string get_cname (bool var_type = false, bool
const_type = false) {
+ return "void";
+ }
}
_______________________________________________
SVN-commits-list mailing list (read only)
http://mail.gnome.org/mailman/listinfo/svn-commits-list
Want to limit the commits to a few modules? Go to above URL, log in to edit
your options and select the modules ('topics') you want.
Module maintainer? It is possible to set the reply-to to your development
mailing list. Email [EMAIL PROTECTED] if interested.