vala r2032 - in trunk: . gobject
- From: sdroege svn gnome org
- To: svn-commits-list gnome org
- Subject: vala r2032 - in trunk: . gobject
- Date: Wed, 19 Nov 2008 08:11:07 +0000 (UTC)
Author: sdroege
Date: Wed Nov 19 08:11:07 2008
New Revision: 2032
URL: http://svn.gnome.org/viewvc/vala?rev=2032&view=rev
Log:
* gobject/valagobjectmodule.vala:
Add support for class field initializers for classes that are not
derived from GObject.
Modified:
trunk/ChangeLog
trunk/gobject/valagobjectmodule.vala
Modified: trunk/gobject/valagobjectmodule.vala
==============================================================================
--- trunk/gobject/valagobjectmodule.vala (original)
+++ trunk/gobject/valagobjectmodule.vala Wed Nov 19 08:11:07 2008
@@ -767,6 +767,19 @@
}
}
+ /* initialize class fields */
+ var fields = cl.get_fields ();
+ foreach (Field field in fields) {
+ if (field.binding != MemberBinding.CLASS || field.initializer == null) {
+ continue;
+ }
+ CCodeExpression left = new CCodeMemberAccess (new CCodeIdentifier ("klass"),
+ field.get_cname (), true);
+ CCodeExpression right = (CCodeExpression)field.initializer.ccodenode;
+ CCodeAssignment assign = new CCodeAssignment (left, right);
+ init_block.add_statement (new CCodeExpressionStatement (assign));
+ }
+
if (cl.is_subtype_of (gobject_type)) {
/* create type, dup_func, and destroy_func properties for generic types */
foreach (TypeParameter type_param in cl.get_type_parameters ()) {
@@ -829,19 +842,6 @@
instance_priv_struct.add_field ("GDestroyNotify", func_name);
}
- /* initialize class fields */
- var fields = cl.get_fields ();
- foreach (Field field in fields) {
- if (field.binding != MemberBinding.CLASS || field.initializer == null) {
- continue;
- }
- CCodeExpression left = new CCodeMemberAccess (new CCodeIdentifier ("klass"),
- field.get_cname (), true);
- CCodeExpression right = (CCodeExpression)field.initializer.ccodenode;
- CCodeAssignment assign = new CCodeAssignment (left, right);
- init_block.add_statement (new CCodeExpressionStatement (assign));
- }
-
/* create properties */
var props = cl.get_properties ();
foreach (Property prop in props) {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]