]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Avoid GPOINTER_TO_* macros with va_arg
authorJürg Billeter <j@bitron.ch>
Sat, 20 Mar 2010 20:55:02 +0000 (21:55 +0100)
committerJürg Billeter <j@bitron.ch>
Sat, 20 Mar 2010 20:55:02 +0000 (21:55 +0100)
codegen/valaccodebasemodule.vala

index c3a30f8fa168d5d3e0ab7e9210b8b4b88da8ebc2..4eecd38094454ca2911f97bfe41f73b2033f2598 100644 (file)
@@ -3444,8 +3444,9 @@ internal class Vala.CCodeBaseModule : CCodeModule {
        public override void visit_expression (Expression expr) {
                if (expr.ccodenode != null && !expr.lvalue) {
                        if (expr.formal_value_type is GenericType && !(expr.value_type is GenericType)) {
-                               if (expr.formal_value_type.type_parameter.parent_symbol != garray_type /*&&
-                                   expr.formal_value_type.type_parameter.parent_symbol != va_list_type*/) {
+                               var st = expr.formal_value_type.type_parameter.parent_symbol.parent_symbol as Struct;
+                               if (expr.formal_value_type.type_parameter.parent_symbol != garray_type &&
+                                   (st == null || st.get_cname () != "va_list")) {
                                        // GArray and va_list don't use pointer-based generics
                                        expr.ccodenode = convert_from_generic_pointer ((CCodeExpression) expr.ccodenode, expr.value_type);
                                }