]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Add CCodeElementAccessModule
authorJürg Billeter <j@bitron.ch>
Fri, 24 Oct 2008 13:27:26 +0000 (13:27 +0000)
committerJürg Billeter <juergbi@src.gnome.org>
Fri, 24 Oct 2008 13:27:26 +0000 (13:27 +0000)
2008-10-24  Jürg Billeter  <j@bitron.ch>

* vala/valacodegenerator.vala:
* vala/valaelementaccess.vala:
* gobject/Makefile.am:
* gobject/valaccodebinding.vala:
* gobject/valaccodeelementaccessmodule.vala:
* gobject/valaccodegenerator.vala:
* gobject/valaccodemodule.vala:

Add CCodeElementAccessModule

svn path=/trunk/; revision=1893

ChangeLog
gobject/Makefile.am
gobject/valaccodebinding.vala
gobject/valaccodeelementaccessmodule.vala [moved from gobject/valaccodeelementaccessbinding.vala with 92% similarity]
gobject/valaccodegenerator.vala
gobject/valaccodemodule.vala
vala/valacodegenerator.vala
vala/valaelementaccess.vala

index a113742d95933562ad84bf239ce20bbfaa7638da..688dd65b33e9025f75acb0a0474d6ce7bd945e2d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2008-10-24  Jürg Billeter  <j@bitron.ch>
+
+       * vala/valacodegenerator.vala:
+       * vala/valaelementaccess.vala:
+       * gobject/Makefile.am:
+       * gobject/valaccodebinding.vala:
+       * gobject/valaccodeelementaccessmodule.vala:
+       * gobject/valaccodegenerator.vala:
+       * gobject/valaccodemodule.vala:
+
+       Add CCodeElementAccessModule
+
 2008-10-24  Jürg Billeter  <j@bitron.ch>
 
        * vala/valacodegenerator.vala:
index 8d60ddd94d3f9efb7abed60e90a25aea86636d42..0b64f97adb6d4da47d2d76ec6a4295900320c61b 100644 (file)
@@ -19,7 +19,7 @@ libvala_la_VALASOURCES = \
        valaccodecompiler.vala \
        valaccodedynamicpropertybinding.vala \
        valaccodedynamicsignalbinding.vala \
-       valaccodeelementaccessbinding.vala \
+       valaccodeelementaccessmodule.vala \
        valaccodegenerator.vala \
        valaccodegeneratorsignal.vala \
        valaccodegeneratorsourcefile.vala \
index 3d87083bd1596ad8eda3a8fc1d08fae93b77c698..67b9dc62cff1b843196e1ee97f1ac27cdd396671 100644 (file)
@@ -45,10 +45,6 @@ public abstract class Vala.CCodeBinding : CodeBinding {
                return (CCodeBinding) node.get_code_binding (codegen);
        }
 
-       public CCodeElementAccessBinding element_access_binding (ElementAccess node) {
-               return (CCodeElementAccessBinding) node.get_code_binding (codegen);
-       }
-
        public CCodeAssignmentBinding assignment_binding (Assignment node) {
                return (CCodeAssignmentBinding) node.get_code_binding (codegen);
        }
similarity index 92%
rename from gobject/valaccodeelementaccessbinding.vala
rename to gobject/valaccodeelementaccessmodule.vala
index c408a7213fc3ea1f4af2ad478883eebc48e16494..7373eb68040237159b46419c3ddfb02aa8606109 100644 (file)
@@ -1,4 +1,4 @@
-/* valaccodeelementaccessbinding.vala
+/* valaccodeelementaccessmodule.vala
  *
  * Copyright (C) 2006-2008  Jürg Billeter, Raffaele Sandrini
  *
@@ -27,16 +27,13 @@ using Gee;
 /**
  * The link between an element access and generated code.
  */
-public class Vala.CCodeElementAccessBinding : CCodeBinding {
-       public ElementAccess element_access { get; set; }
-
-       public CCodeElementAccessBinding (CCodeGenerator codegen, ElementAccess element_access) {
-               this.element_access = element_access;
-               this.codegen = codegen;
+public class Vala.CCodeElementAccessModule : CCodeModule {
+       public CCodeElementAccessModule (CCodeGenerator codegen, CCodeModule? next) {
+               base (codegen, next);
        }
 
-       public override void emit () {
-               var expr = element_access;
+       public override void visit_element_access (ElementAccess expr) {
+               expr.accept_children (codegen);
 
                Gee.List<Expression> indices = expr.get_indices ();
                int rank = indices.size;
index 4ed538c762516e60314fbe2c2e9cb0d513d90d14..ac923ae20a3df9040967afb8154dbca2c469364b 100644 (file)
@@ -144,6 +144,7 @@ public class Vala.CCodeGenerator : CodeGenerator {
                head = new CCodeBaseModule (this, head);
                head = new CCodeMethodModule (this, head);
                head = new CCodeMemberAccessModule (this, head);
+               head = new CCodeElementAccessModule (this, head);
                head = new CCodeInvocationExpressionModule (this, head);
                head = new CCodeArrayModule (this, head);
                head = new GObjectModule (this, head);
@@ -3061,9 +3062,7 @@ public class Vala.CCodeGenerator : CodeGenerator {
        }
 
        public override void visit_element_access (ElementAccess expr) {
-               expr.accept_children (this);
-
-               code_binding (expr).emit ();
+               head.visit_element_access (expr);
        }
 
        public override void visit_base_access (BaseAccess expr) {
@@ -4375,10 +4374,6 @@ public class Vala.CCodeGenerator : CodeGenerator {
                return new CCodeDynamicSignalBinding (this, node);
        }
 
-       public override CodeBinding? create_element_access_binding (ElementAccess node) {
-               return new CCodeElementAccessBinding (this, node);
-       }
-
        public override CodeBinding? create_assignment_binding (Assignment node) {
                return new CCodeAssignmentBinding (this, node);
        }
@@ -4395,10 +4390,6 @@ public class Vala.CCodeGenerator : CodeGenerator {
                return (CCodeDynamicSignalBinding) node.get_code_binding (this);
        }
 
-       public CCodeElementAccessBinding element_access_binding (ElementAccess node) {
-               return (CCodeElementAccessBinding) node.get_code_binding (this);
-       }
-
        public CCodeAssignmentBinding assignment_binding (Assignment node) {
                return (CCodeAssignmentBinding) node.get_code_binding (this);
        }
index dbc150f698bfcc887b64e2fc573b4bcc489125f8..1bcade56644ea1bd2f21093b98871ef1c823eb54 100644 (file)
@@ -72,6 +72,10 @@ public abstract class Vala.CCodeModule {
                next.visit_member_access (expr);
        }
 
+       public virtual void visit_element_access (ElementAccess expr) {
+               next.visit_element_access (expr);
+       }
+
        public virtual void visit_invocation_expression (InvocationExpression expr) {
                next.visit_invocation_expression (expr);
        }
index 64d136e560e5a9a6c284b2aa7e8ac67bfc716c7f..0f60bbac6bff841c91f7d0db583f2175c121aade 100644 (file)
@@ -42,10 +42,6 @@ public class Vala.CodeGenerator : CodeVisitor {
                return null;
        }
 
-       public virtual CodeBinding? create_element_access_binding (ElementAccess node) {
-               return null;
-       }
-
        public virtual CodeBinding? create_assignment_binding (Assignment node) {
                return null;
        }
index b8d5c1a6678eaa9ca9ce204c1842fef1e4431ad2..640bd3e31bfeb2ac2e62dbd530a5e92da70873df 100644 (file)
@@ -85,8 +85,4 @@ public class Vala.ElementAccess : Expression {
                }
                return container.is_pure ();
        }
-
-       public override CodeBinding? create_code_binding (CodeGenerator codegen) {
-               return codegen.create_element_access_binding (this);
-       }
 }