~ubuntu-branches/ubuntu/vivid/vala/vivid

« back to all changes in this revision

Viewing changes to codegen/valagsignalmodule.vala

  • Committer: Bazaar Package Importer
  • Author(s): Sebastian Dröge
  • Date: 2010-07-28 07:58:01 UTC
  • mfrom: (1.5.5 upstream) (7.3.14 experimental)
  • Revision ID: james.westby@ubuntu.com-20100728075801-18u9cg5hv5oety6m
Tags: 0.9.4-1
New upstream development release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
67
67
                if (param.direction != ParameterDirection.IN) {
68
68
                        return ("POINTER");
69
69
                } else {
70
 
                        return get_marshaller_type_name (param.parameter_type, dbus);
 
70
                        return get_marshaller_type_name (param.variable_type, dbus);
71
71
                }
72
72
        }
73
73
        
127
127
                if (p.direction != ParameterDirection.IN) {
128
128
                        return "gpointer";
129
129
                } else {
130
 
                        return get_value_type_name_from_type_reference (p.parameter_type);
 
130
                        return get_value_type_name_from_type_reference (p.variable_type);
131
131
                }
132
132
        }
133
133
        
212
212
                foreach (FormalParameter p in params) {
213
213
                        callback_decl.add_parameter (new CCodeFormalParameter ("arg_%d".printf (n_params), get_value_type_name_from_parameter (p)));
214
214
                        n_params++;
215
 
                        if (p.parameter_type.is_array () && !dbus) {
 
215
                        if (p.variable_type.is_array () && !dbus) {
216
216
                                callback_decl.add_parameter (new CCodeFormalParameter ("arg_%d".printf (n_params), "gint"));
217
217
                                n_params++;
218
218
                        }
272
272
                i = 1;
273
273
                foreach (FormalParameter p in params) {
274
274
                        string get_value_function;
275
 
                        bool is_array = p.parameter_type.is_array ();
 
275
                        bool is_array = p.variable_type.is_array ();
276
276
                        if (p.direction != ParameterDirection.IN) {
277
277
                                get_value_function = "g_value_get_pointer";
278
278
                        } else if (is_array) {
279
279
                                if (dbus) {
280
280
                                        get_value_function = "g_value_get_boxed";
281
281
                                } else {
282
 
                                        if (((ArrayType) p.parameter_type).element_type.data_type == string_type.data_type) {
 
282
                                        if (((ArrayType) p.variable_type).element_type.data_type == string_type.data_type) {
283
283
                                                get_value_function = "g_value_get_boxed";
284
284
                                        } else {
285
285
                                                get_value_function = "g_value_get_pointer";
286
286
                                        }
287
287
                                }
288
 
                        } else if (p.parameter_type is PointerType || p.parameter_type.type_parameter != null) {
289
 
                                get_value_function = "g_value_get_pointer";
290
 
                        } else if (p.parameter_type is ErrorType) {
291
 
                                get_value_function = "g_value_get_pointer";
292
 
                        } else if (dbus && DBusModule.get_type_signature (p.parameter_type).has_prefix ("(")) {
 
288
                        } else if (p.variable_type is PointerType || p.variable_type.type_parameter != null) {
 
289
                                get_value_function = "g_value_get_pointer";
 
290
                        } else if (p.variable_type is ErrorType) {
 
291
                                get_value_function = "g_value_get_pointer";
 
292
                        } else if (dbus && DBusModule.get_type_signature (p.variable_type).has_prefix ("(")) {
293
293
                                get_value_function = "g_value_get_boxed";
294
 
                        } else if (dbus && p.parameter_type.data_type is Enum) {
295
 
                                var en = (Enum) p.parameter_type.data_type;
 
294
                        } else if (dbus && p.variable_type.data_type is Enum) {
 
295
                                var en = (Enum) p.variable_type.data_type;
296
296
                                if (en.is_flags) {
297
297
                                        get_value_function = "g_value_get_uint";
298
298
                                } else {
299
299
                                        get_value_function = "g_value_get_int";
300
300
                                }
301
301
                        } else {
302
 
                                get_value_function = p.parameter_type.data_type.get_get_value_function ();
 
302
                                get_value_function = p.variable_type.data_type.get_get_value_function ();
303
303
                        }
304
304
                        var inner_fc = new CCodeFunctionCall (new CCodeIdentifier (get_value_function));
305
305
                        inner_fc.add_argument (new CCodeBinaryExpression (CCodeBinaryOperator.PLUS, new CCodeIdentifier ("param_values"), new CCodeIdentifier (i.to_string ())));
423
423
                int params_len = 0;
424
424
                foreach (FormalParameter param in params) {
425
425
                        params_len++;
426
 
                        if (param.parameter_type.is_array ()) {
 
426
                        if (param.variable_type.is_array ()) {
427
427
                                params_len++;
428
428
                        }
429
429
                }
430
430
 
431
431
                csignew.add_argument (new CCodeConstant ("%d".printf (params_len)));
432
432
                foreach (FormalParameter param in params) {
433
 
                        if (param.parameter_type.is_array ()) {
434
 
                                if (((ArrayType) param.parameter_type).element_type.data_type == string_type.data_type) {
 
433
                        if (param.variable_type.is_array ()) {
 
434
                                if (((ArrayType) param.variable_type).element_type.data_type == string_type.data_type) {
435
435
                                        csignew.add_argument (new CCodeConstant ("G_TYPE_STRV"));
436
436
                                } else {
437
437
                                        csignew.add_argument (new CCodeConstant ("G_TYPE_POINTER"));
438
438
                                }
439
439
                                csignew.add_argument (new CCodeConstant ("G_TYPE_INT"));
440
 
                        } else if (param.parameter_type is PointerType || param.parameter_type.type_parameter != null || param.direction != ParameterDirection.IN) {
 
440
                        } else if (param.variable_type is PointerType || param.variable_type.type_parameter != null || param.direction != ParameterDirection.IN) {
441
441
                                csignew.add_argument (new CCodeConstant ("G_TYPE_POINTER"));
442
 
                        } else if (param.parameter_type is ErrorType) {
 
442
                        } else if (param.variable_type is ErrorType) {
443
443
                                csignew.add_argument (new CCodeConstant ("G_TYPE_POINTER"));
444
444
                        } else {
445
 
                                csignew.add_argument (new CCodeConstant (param.parameter_type.data_type.get_type_id ()));
 
445
                                csignew.add_argument (new CCodeConstant (param.variable_type.data_type.get_type_id ()));
446
446
                        }
447
447
                }
448
448
 
478
478
        bool in_gobject_instance (Method m) {
479
479
                bool result = false;
480
480
                if (m.binding == MemberBinding.INSTANCE) {
481
 
                        result = m.this_parameter.parameter_type.data_type.is_subtype_of (gobject_type);
 
481
                        result = m.this_parameter.variable_type.data_type.is_subtype_of (gobject_type);
482
482
                }
483
483
                return result;
484
484
        }