]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
GError: Fix error propagation in creation methods
authorJürg Billeter <j@bitron.ch>
Wed, 30 Sep 2009 17:28:37 +0000 (19:28 +0200)
committerJürg Billeter <j@bitron.ch>
Wed, 30 Sep 2009 17:32:59 +0000 (19:32 +0200)
codegen/valagerrormodule.vala

index 9d624ded918dccd018504d754d9cbac1a71998fe..2f1d3856fadea6e72398a600f3069eb8b074a738 100644 (file)
@@ -116,7 +116,11 @@ internal class Vala.GErrorModule : CCodeDelegateModule {
                append_local_free (current_symbol, free_frag, false);
                cerror_block.add_statement (free_frag);
 
-               if (current_return_type is VoidType) {
+               if (current_method is CreationMethod) {
+                       cerror_block.add_statement (new CCodeReturnStatement (new CCodeConstant ("NULL")));
+               } else if (current_method != null && current_method.coroutine) {
+                       cerror_block.add_statement (new CCodeReturnStatement (new CCodeConstant ("FALSE")));
+               } else if (current_return_type is VoidType) {
                        cerror_block.add_statement (new CCodeReturnStatement ());
                } else {
                        cerror_block.add_statement (new CCodeReturnStatement (default_value_for_type (current_return_type, false)));