[vala] codegen: Return a default value in delegate wrappers
- From: Luca Bruno <lucabru src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vala] codegen: Return a default value in delegate wrappers
- Date: Tue, 24 Feb 2015 15:51:50 +0000 (UTC)
commit 9850121b6c3fe8c3a0fce3bc121c05483c5a1739
Author: Luca Bruno <lucabru src gnome org>
Date: Tue Feb 24 13:47:12 2015 +0100
codegen: Return a default value in delegate wrappers
Fixes bug 744639
codegen/valaccodedelegatemodule.vala | 8 +++++++-
1 files changed, 7 insertions(+), 1 deletions(-)
---
diff --git a/codegen/valaccodedelegatemodule.vala b/codegen/valaccodedelegatemodule.vala
index 744f63a..9eb57ed 100644
--- a/codegen/valaccodedelegatemodule.vala
+++ b/codegen/valaccodedelegatemodule.vala
@@ -408,8 +408,13 @@ public class Vala.CCodeDelegateModule : CCodeArrayModule {
ccall.add_argument (new CCodeConstant ("NULL"));
ccall.add_argument (new CCodeConstant ("NULL"));
}
+
if (m.return_type is VoidType || m.return_type.is_real_non_null_struct_type ()) {
ccode.add_expression (ccall);
+ if (!(d.return_type is VoidType || d.return_type.is_real_non_null_struct_type ())) {
+ // return a default value
+ ccode.add_declaration (return_type_cname, new CCodeVariableDeclarator
("result", default_value_for_type (d.return_type, true)));
+ }
} else {
CCodeExpression result = ccall;
if (d.return_type is GenericType) {
@@ -435,7 +440,8 @@ public class Vala.CCodeDelegateModule : CCodeArrayModule {
}
}
- if (!(m.return_type is VoidType || m.return_type.is_real_non_null_struct_type ())) {
+ if (!(m.return_type is VoidType || m.return_type.is_real_non_null_struct_type ()) ||
+ !(d.return_type is VoidType || d.return_type.is_real_non_null_struct_type ())) {
ccode.add_return (new CCodeIdentifier ("result"));
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]