]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
dova: Support delegates
authorJürg Billeter <j@bitron.ch>
Sat, 5 Jun 2010 07:51:45 +0000 (09:51 +0200)
committerJürg Billeter <j@bitron.ch>
Sat, 5 Jun 2010 08:12:10 +0000 (10:12 +0200)
vala/valadelegate.vala
vala/valadelegatetype.vala

index afedd3b8221811a3dfdf6efdd23b97fad37bcd3d..09538e98a8e1d24b824e2d6db38a7add08400ec4 100644 (file)
@@ -228,6 +228,17 @@ public class Vala.Delegate : TypeSymbol {
                this.cname = cname;
        }
 
+       public override string? get_lower_case_cname (string? infix) {
+               if (infix == null) {
+                       infix = "";
+               }
+               return "%s%s%s".printf (parent_symbol.get_lower_case_cprefix (), infix, camel_case_to_lower_case (name));
+       }
+
+       public override string? get_upper_case_cname (string? infix) {
+               return get_lower_case_cname (infix).up ();
+       }
+
        private void process_ccode_attribute (Attribute a) {
                if (a.has_argument ("cname")) {
                        set_cname (a.get_string ("cname"));
index 8d337e019defb403c1a4c999589118df6053c22d..15dc2c3dde8ca7da935abc6a3f33a2a95f866763 100644 (file)
@@ -68,7 +68,11 @@ public class Vala.DelegateType : DataType {
        }
 
        public override string? get_cname () {
-               return delegate_symbol.get_cname ();
+               if (CodeContext.get ().profile == Profile.DOVA) {
+                       return "%s*".printf (delegate_symbol.get_cname ());
+               } else {
+                       return delegate_symbol.get_cname ();
+               }
        }
 
        public override List<Symbol> get_symbols () {