~ubuntu-branches/ubuntu/maverick/vala/maverick

« back to all changes in this revision

Viewing changes to codegen/valagtypemodule.vala

  • Committer: Bazaar Package Importer
  • Author(s): Julien Lavergne
  • Date: 2010-02-13 17:59:22 UTC
  • mfrom: (7.3.7 sid)
  • Revision ID: james.westby@ubuntu.com-20100213175922-n8bq2xv2q1hihhqb
Tags: 0.7.10-1ubuntu1
* Sync with Debian unstable.
* Remaining changes :
 - debian/rules: Don't make unit test failures fatal to fix FTBFS. It was
   needed if vala need to enter main but it's not the case for now. 
   (See #374151)

Show diffs side-by-side

added added

removed removed

Lines of Context:
631
631
 
632
632
                                var cblock = new CCodeBlock ();
633
633
 
634
 
                                cblock.add_statement (instance_finalize_fragment);
635
 
 
636
634
                                if (cl.destructor != null) {
637
635
                                        cblock.add_statement (cl.destructor.ccodenode);
638
636
                                }
639
637
 
 
638
                                cblock.add_statement (instance_finalize_fragment);
 
639
 
640
640
                                var ccall = new CCodeFunctionCall (new CCodeIdentifier ("g_slice_free"));
641
641
                                ccall.add_argument (new CCodeIdentifier (cl.get_cname ()));
642
642
                                ccall.add_argument (new CCodeIdentifier ("self"));
1822
1822
                decl_space.add_type_definition (type_struct);
1823
1823
 
1824
1824
                var type_fun = create_interface_register_function (iface);
1825
 
                type_fun.init_from_type ();
 
1825
                type_fun.init_from_type (in_plugin);
1826
1826
                decl_space.add_type_member_declaration (type_fun.get_declaration ());
1827
1827
        }
1828
1828
 
1849
1849
                add_interface_base_init_function (iface);
1850
1850
 
1851
1851
                var type_fun = create_interface_register_function (iface);
1852
 
                type_fun.init_from_type ();
 
1852
                type_fun.init_from_type (in_plugin);
 
1853
                source_declarations.add_type_member_declaration (type_fun.get_source_declaration ());
1853
1854
                source_type_member_definition.append (type_fun.get_definition ());
1854
1855
 
1855
1856
                current_symbol = old_symbol;
1923
1924
                        source_type_member_definition.append (type_fun.get_definition ());
1924
1925
                }
1925
1926
        }
 
1927
 
 
1928
        public override void visit_method_call (MethodCall expr) {
 
1929
                var ma = expr.call as MemberAccess;
 
1930
                var mtype = expr.call.value_type as MethodType;
 
1931
                if (mtype == null || mtype.method_symbol.get_full_name () != "GLib.Enum.to_string" ||
 
1932
                    ma == null || ma.inner.value_type.get_type_id () == null) {
 
1933
                        base.visit_method_call (expr);
 
1934
                        return;
 
1935
                }
 
1936
 
 
1937
                var class_ref = new CCodeFunctionCall (new CCodeIdentifier ("g_type_class_ref"));
 
1938
                class_ref.add_argument (new CCodeIdentifier (ma.inner.value_type.get_type_id ()));
 
1939
 
 
1940
                var get_value = new CCodeFunctionCall (new CCodeIdentifier ("g_enum_get_value"));
 
1941
                get_value.add_argument (class_ref);
 
1942
                get_value.add_argument ((CCodeExpression) get_ccodenode (((MemberAccess) expr.call).inner));
 
1943
                var value_name = new CCodeMemberAccess.pointer (get_value, "value_name");
 
1944
                expr.ccodenode = value_name;
 
1945
        }
1926
1946
}