]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
GIR writer: Generate allow-none attributes
authorDidier 'Ptitjes <ptitjes@free.fr>
Sat, 21 Mar 2009 03:22:24 +0000 (04:22 +0100)
committerJürg Billeter <j@bitron.ch>
Thu, 30 Apr 2009 21:20:22 +0000 (23:20 +0200)
Generate allow-none attributes on parameters, return values and fields.

Signed-off-by: Didier 'Ptitjes <ptitjes@free.fr>
gobject/valagirwriter.vala

index 2a22e847122676a57f81effcb8a036615a4c5817..1ba0ea8f70b415f7f10d397d0f6e2fe6e41a3dab 100644 (file)
@@ -377,7 +377,11 @@ public class Vala.GIRWriter : CodeVisitor {
                }
 
                write_indent ();
-               stream.printf ("<field name=\"%s\">\n", f.get_cname ());
+               stream.printf ("<field name=\"%s\"", f.get_cname ());
+               if (f.field_type.nullable) {
+                       stream.printf (" allow-none=\"1\"");
+               }
+               stream.printf (">\n");
                indent++;
 
                write_type (f.field_type);
@@ -435,6 +439,9 @@ public class Vala.GIRWriter : CodeVisitor {
                                        stream.printf (" transfer-ownership=\"none\"");
                                }
                        }
+                       if (param.parameter_type.nullable) {
+                               stream.printf (" allow-none=\"1\"");
+                       }
                        stream.printf (">\n");
                        indent++;
 
@@ -603,6 +610,9 @@ public class Vala.GIRWriter : CodeVisitor {
                } else {
                        stream.printf (" transfer-ownership=\"none\"");
                }
+               if (type.nullable) {
+                       stream.printf (" allow-none=\"1\"");
+               }
                stream.printf (">\n");
                indent++;