~ubuntu-branches/ubuntu/quantal/vala-0.16/quantal

« back to all changes in this revision

Viewing changes to codegen/valaccodeattribute.vala

  • Committer: Package Import Robot
  • Author(s): Rico Tzschichholz
  • Date: 2012-02-28 20:20:50 UTC
  • mfrom: (1.1.2)
  • Revision ID: package-import@ubuntu.com-20120228202050-nowzcc7uhxomtrs2
Tags: 0.15.2-0ubuntu1
New upstream release

Show diffs side-by-side

added added

removed removed

Lines of Context:
454
454
                }
455
455
        }
456
456
 
 
457
        public string delegate_target_name {
 
458
                get {
 
459
                        if (_delegate_target_name == null) {
 
460
                                if (ccode != null) {
 
461
                                        _delegate_target_name = ccode.get_string ("delegate_target_cname");
 
462
                                }
 
463
                                if (_delegate_target_name == null) {
 
464
                                        _delegate_target_name = "%s_target".printf (sym.name);
 
465
                                }
 
466
                        }
 
467
                        return _delegate_target_name;
 
468
                }
 
469
        }
 
470
 
457
471
        public bool array_length { get; private set; }
458
472
        public string? array_length_type { get; private set; }
459
473
        public bool array_null_terminated { get; private set; }
496
510
        private string _finish_vfunc_name;
497
511
        private string _finish_real_name;
498
512
        private string _real_name;
 
513
        private string _delegate_target_name;
499
514
 
500
515
        private static int dynamic_method_id;
501
516
 
913
928
                        } else if (sym is Struct) {
914
929
                                var st = (Struct) sym;
915
930
                                var base_st = st.base_struct;
916
 
                                if (base_st != null) {
917
 
                                        return CCodeBaseModule.get_ccode_marshaller_type_name (base_st);
 
931
                                while (base_st != null) {
 
932
                                        if (CCodeBaseModule.get_ccode_has_type_id (base_st)) {
 
933
                                                return CCodeBaseModule.get_ccode_marshaller_type_name (base_st);
 
934
                                        } else {
 
935
                                                base_st = base_st.base_struct;
 
936
                                        }
918
937
                                }
919
938
                                if (st.is_simple_type ()) {
920
939
                                        Report.error (st.source_reference, "The type `%s` doesn't declare a marshaller type name".printf (st.get_full_name ()));
989
1008
                } else if (sym is Struct) {
990
1009
                        var st = (Struct) sym;
991
1010
                        var base_st = st.base_struct;
992
 
                        if (base_st != null) {
993
 
                                return CCodeBaseModule.get_ccode_get_value_function (base_st);
 
1011
                        while (base_st != null) {
 
1012
                                if (CCodeBaseModule.get_ccode_has_type_id (base_st)) {
 
1013
                                        return CCodeBaseModule.get_ccode_get_value_function (base_st);
 
1014
                                } else {
 
1015
                                        base_st = base_st.base_struct;
 
1016
                                }
994
1017
                        }
995
1018
                        if (st.is_simple_type ()) {
996
1019
                                Report.error (st.source_reference, "The type `%s` doesn't declare a GValue get function".printf (st.get_full_name ()));
1043
1066
                } else if (sym is Struct) {
1044
1067
                        var st = (Struct) sym;
1045
1068
                        var base_st = st.base_struct;
1046
 
                        if (base_st != null) {
1047
 
                                return CCodeBaseModule.get_ccode_set_value_function (base_st);
 
1069
                        while (base_st != null) {
 
1070
                                if (CCodeBaseModule.get_ccode_has_type_id (base_st)) {
 
1071
                                        return CCodeBaseModule.get_ccode_set_value_function (base_st);
 
1072
                                } else {
 
1073
                                        base_st = base_st.base_struct;
 
1074
                                }
1048
1075
                        }
1049
1076
                        if (st.is_simple_type ()) {
1050
1077
                                Report.error (st.source_reference, "The type `%s` doesn't declare a GValue set function".printf (st.get_full_name ()));
1097
1124
                } else if (sym is Struct) {
1098
1125
                        var st = (Struct) sym;
1099
1126
                        var base_st = st.base_struct;
1100
 
                        if (base_st != null) {
1101
 
                                return CCodeBaseModule.get_ccode_take_value_function (base_st);
 
1127
                        while (base_st != null) {
 
1128
                                if (CCodeBaseModule.get_ccode_has_type_id (base_st)) {
 
1129
                                        return CCodeBaseModule.get_ccode_take_value_function (base_st);
 
1130
                                } else {
 
1131
                                        base_st = base_st.base_struct;
 
1132
                                }
1102
1133
                        }
1103
1134
                        if (st.is_simple_type ()) {
1104
1135
                                Report.error (st.source_reference, "The type `%s` doesn't declare a GValue take function".printf (st.get_full_name ()));