]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
codegen: Add return_default_value helper method
authorJürg Billeter <j@bitron.ch>
Mon, 18 Oct 2010 14:30:33 +0000 (16:30 +0200)
committerJürg Billeter <j@bitron.ch>
Mon, 18 Oct 2010 14:30:33 +0000 (16:30 +0200)
codegen/valaccodebasemodule.vala
codegen/valaccodemethodmodule.vala
codegen/valagasyncmodule.vala
codegen/valagdbusclientmodule.vala
codegen/valagerrormodule.vala

index f5a55a105b760b23a2c68fa005a34735d9b94287..c970eaf975b91a665b1ac39245fa79aa9401c06d 100644 (file)
@@ -5674,6 +5674,10 @@ public class Vala.CCodeBaseModule : CodeGenerator {
                cfile.add_function (function);
        }
 
+       public void return_default_value (DataType return_type) {
+               ccode.add_return (default_value_for_type (return_type, false));
+       }
+
        public virtual string? get_custom_creturn_type (Method m) {
                return null;
        }
index a7e7fd74d14ef9d83602d2788251042501778267..a7022c2060718b606a990035fb7d6e516530521b 100644 (file)
@@ -651,7 +651,7 @@ public class Vala.CCodeMethodModule : CCodeStructModule {
                        ccode.add_expression (cerrorcall);
 
                        // add return statement
-                       ccode.add_return (default_value_for_type (creturn_type, false));
+                       return_default_value (creturn_type);
 
                        cfile.add_function (ccode);
                }
index 703e86edb95b174df2e929922268ce9516a7e567..8147358bddd8ada53a5f33c0ecf8f00357d6ef81 100644 (file)
@@ -433,11 +433,7 @@ public class Vala.GAsyncModule : GSignalModule {
                        propagate_error.add_argument (new CCodeIdentifier ("error"));
 
                        ccode.open_if (propagate_error);
-                       if (return_type is VoidType || return_type.is_real_non_null_struct_type ()) {
-                               ccode.add_return ();
-                       } else {
-                               ccode.add_return (default_value_for_type (return_type, false));
-                       }
+                       return_default_value (return_type);
                        ccode.close ();
                }
 
index 223703a9b406aa24ccd837a34e0612e7b4d92454..7729d8a1f30ad60f013aad1ac1fe96d1e2e79f40 100644 (file)
@@ -479,11 +479,7 @@ public class Vala.GDBusClientModule : GDBusModule {
                if (call_type == CallType.SYNC || call_type == CallType.FINISH) {
                        // return on error
                        ccode.open_if (new CCodeUnaryExpression (CCodeUnaryOperator.LOGICAL_NEGATION, new CCodeIdentifier ("_reply")));
-                       if (m.return_type is VoidType || m.return_type.is_real_non_null_struct_type ()) {
-                               ccode.add_return ();
-                       } else {
-                               ccode.add_return (default_value_for_type (m.return_type, false));
-                       }
+                       return_default_value (m.return_type);
                        ccode.close ();
 
                        ccode.add_declaration ("GVariantIter", new CCodeVariableDeclarator ("_reply_iter"));
@@ -708,11 +704,7 @@ public class Vala.GDBusClientModule : GDBusModule {
 
                // return on error
                ccode.open_if (new CCodeUnaryExpression (CCodeUnaryOperator.LOGICAL_NEGATION, new CCodeIdentifier ("_reply")));
-               if (prop.property_type.is_real_non_null_struct_type ()) {
-                       ccode.add_return ();
-               } else {
-                       ccode.add_return (default_value_for_type (prop.property_type, false));
-               }
+               return_default_value (prop.property_type);
                ccode.close ();
 
                ccode.add_declaration ("GVariantIter", new CCodeVariableDeclarator ("_reply_iter"));
index 3a4f77c179322fe94f72e17f5e8f592ece4a3a7f..a64b38a9d763e733f5f2a29afbc8c3bfda1bd640 100644 (file)
@@ -109,10 +109,8 @@ public class Vala.GErrorModule : CCodeDelegateModule {
                        ccode.add_return (new CCodeConstant ("NULL"));
                } else if (current_method != null && current_method.coroutine) {
                        ccode.add_return (new CCodeConstant ("FALSE"));
-               } else if (current_return_type is VoidType) {
-                       ccode.add_return ();
                } else {
-                       ccode.add_return (default_value_for_type (current_return_type, false));
+                       return_default_value (current_return_type);
                }
        }
 
@@ -141,10 +139,8 @@ public class Vala.GErrorModule : CCodeDelegateModule {
                        ccode.add_return (new CCodeConstant ("NULL"));
                } else if (current_method != null && current_method.coroutine) {
                        ccode.add_return (new CCodeConstant ("FALSE"));
-               } else if (current_return_type is VoidType) {
-                       ccode.add_return ();
                } else if (current_return_type != null) {
-                       ccode.add_return (default_value_for_type (current_return_type, false));
+                       return_default_value (current_return_type);
                }
        }