diff options
author | Juerg Billeter <j@bitron.ch> | 2008-04-06 19:24:58 +0000 |
---|---|---|
committer | Jürg Billeter <juergbi@src.gnome.org> | 2008-04-06 19:24:58 +0000 |
commit | 1242bbb030762ccca8a306eff5d908dcd25ff530 (patch) | |
tree | 0e2bbdaaf81dc51431337e90e20decd430312685 | |
parent | 0a579898ac7c872919bf75dd6964721dad04f25c (diff) | |
download | vala-1242bbb030762ccca8a306eff5d908dcd25ff530.tar.gz |
fix crash when using string arrays in parameters of D-Bus methods, fixes
2008-04-06 Juerg Billeter <j@bitron.ch>
* gobject/valaccodegeneratorinvocationexpression.vala: fix crash
when using string arrays in parameters of D-Bus methods,
fixes bug 525166
svn path=/trunk/; revision=1167
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | gobject/valaccodegeneratorinvocationexpression.vala | 6 |
2 files changed, 10 insertions, 2 deletions
@@ -1,5 +1,11 @@ 2008-04-06 Jürg Billeter <j@bitron.ch> + * gobject/valaccodegeneratorinvocationexpression.vala: fix crash + when using string arrays in parameters of D-Bus methods, + fixes bug 525166 + +2008-04-06 Jürg Billeter <j@bitron.ch> + * gobject/valaccodegenerator.vala, gobject/valaccodegeneratorclass.vala, gobject/valaccodegeneratorinterface.vala, diff --git a/gobject/valaccodegeneratorinvocationexpression.vala b/gobject/valaccodegeneratorinvocationexpression.vala index 97d952a3f..349766e65 100644 --- a/gobject/valaccodegeneratorinvocationexpression.vala +++ b/gobject/valaccodegeneratorinvocationexpression.vala @@ -174,14 +174,16 @@ public class Vala.CCodeGenerator { var cdecl = new CCodeDeclaration (param.type_reference.get_cname ()); cdecl.add_declarator (new CCodeVariableDeclarator (param.name)); cb_fun.block.add_statement (cdecl); - cend_call.add_argument (new CCodeIdentifier (param.type_reference.data_type.get_type_id ())); - cend_call.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, new CCodeIdentifier (param.name))); if (param.type_reference is ArrayType && ((ArrayType) param.type_reference).element_type.data_type == string_type.data_type) { // special case string array + cend_call.add_argument (new CCodeIdentifier ("G_TYPE_STRV")); var cstrvlen = new CCodeFunctionCall (new CCodeIdentifier ("g_strv_length")); cstrvlen.add_argument (new CCodeIdentifier (param.name)); creply_call.add_argument (cstrvlen); + } else { + cend_call.add_argument (new CCodeIdentifier (param.type_reference.data_type.get_type_id ())); } + cend_call.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, new CCodeIdentifier (param.name))); creply_call.add_argument (new CCodeIdentifier (param.name)); } } |