+2008-10-24 Jürg Billeter <j@bitron.ch>
+
+ * gobject/valaccodebasemodule.vala:
+ * gobject/valaccodegenerator.vala:
+ * gobject/valaccodemodule.vala:
+
+ Allow access to head and codegen from CCode modules
+
2008-10-24 Jürg Billeter <j@bitron.ch>
* vala/valacodegenerator.vala:
* Code visitor generating C Code.
*/
public class Vala.CCodeBaseModule : CCodeModule {
- public CCodeBaseModule (CCodeModule? next) {
- base (next);
+ public CCodeBaseModule (CCodeGenerator codegen, CCodeModule? next) {
+ base (codegen, next);
}
}
private Set<string> wrappers;
public CCodeGenerator () {
- this.head = new CCodeBaseModule (null);
+ this.head = new CCodeBaseModule (this, null);
predefined_marshal_set = new HashSet<string> (str_hash, str_equal);
predefined_marshal_set.add ("VOID:VOID");
* Code visitor generating C Code.
*/
public abstract class Vala.CCodeModule {
- public weak CCodeModule head { get; private set; }
+ public weak CCodeGenerator codegen { get; private set; }
- public CCodeModule? next { get; private set; }
+ public CCodeModule head {
+ get { return _head; }
+ private set {
+ _head = value;
+ // propagate head property to all modules
+ if (next != null) {
+ next.head = value;
+ }
+ }
+ }
+
+ weak CCodeModule _head;
+ CCodeModule? next;
- public CCodeModule (CCodeModule? next) {
+ public CCodeModule (CCodeGenerator codegen, CCodeModule? next) {
+ this.codegen = codegen;
this.next = next;
+ this.head = this;
}
public virtual void emit (CodeContext context) {