]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
girwriter: Use appropriate get_ccode_* functions
authorRico Tzschichholz <ricotz@ubuntu.com>
Tue, 28 Jul 2020 11:53:29 +0000 (13:53 +0200)
committerRico Tzschichholz <ricotz@ubuntu.com>
Wed, 29 Jul 2020 13:08:28 +0000 (15:08 +0200)
This will pick up possible CCode.*name attributes

codegen/valagirwriter.vala

index b3bae966028f96e533adbfc12a64b8005f5d5480..78112ec77a6586cc8592ce4fbb617bc61de250d4 100644 (file)
@@ -501,38 +501,32 @@ public class Vala.GIRWriter : CodeVisitor {
                        foreach (Method m in cl.get_methods ()) {
                                if (m.is_abstract || m.is_virtual) {
                                        if (m.coroutine) {
-                                               string finish_name = m.name;
-                                               if (finish_name.has_suffix ("_async")) {
-                                                       finish_name = finish_name.substring (0, finish_name.length - "_async".length);
-                                               }
-                                               finish_name += "_finish";
-
                                                write_indent ();
-                                               buffer.append_printf("<field name=\"%s\"", m.name);
+                                               buffer.append_printf("<field name=\"%s\"", get_ccode_vfunc_name (m));
                                                write_symbol_attributes (m);
                                                buffer.append_printf (">\n");
                                                indent++;
-                                               do_write_signature (m, "callback", true, m.name, get_ccode_name (m), m.get_async_begin_parameters (), new VoidType (), false, false, false);
+                                               do_write_signature (m, "callback", true, get_ccode_vfunc_name (m), get_ccode_name (m), m.get_async_begin_parameters (), new VoidType (), false, false, false);
                                                indent--;
                                                write_indent ();
                                                buffer.append_printf ("</field>\n");
 
                                                write_indent ();
-                                               buffer.append_printf("<field name=\"%s\"", finish_name);
+                                               buffer.append_printf("<field name=\"%s\"", get_ccode_finish_vfunc_name (m));
                                                write_symbol_attributes (m);
                                                buffer.append_printf (">\n");
                                                indent++;
-                                               do_write_signature (m, "callback", true, finish_name, get_ccode_finish_name (m), m.get_async_end_parameters (), m.return_type, m.tree_can_fail, false, false);
+                                               do_write_signature (m, "callback", true, get_ccode_finish_vfunc_name (m), get_ccode_finish_name (m), m.get_async_end_parameters (), m.return_type, m.tree_can_fail, false, false);
                                                indent--;
                                                write_indent ();
                                                buffer.append_printf ("</field>\n");
                                        } else {
                                                write_indent ();
-                                               buffer.append_printf("<field name=\"%s\"", m.name);
+                                               buffer.append_printf("<field name=\"%s\"", get_ccode_vfunc_name (m));
                                                write_symbol_attributes (m);
                                                buffer.append_printf (">\n");
                                                indent++;
-                                               do_write_signature (m, "callback", true, m.name, get_ccode_name (m), m.get_parameters (), m.return_type, m.tree_can_fail, false, false);
+                                               do_write_signature (m, "callback", true, get_ccode_vfunc_name (m), get_ccode_name (m), m.get_parameters (), m.return_type, m.tree_can_fail, false, false);
                                                indent--;
                                                write_indent ();
                                                buffer.append_printf ("</field>\n");
@@ -688,38 +682,32 @@ public class Vala.GIRWriter : CodeVisitor {
                foreach (Method m in iface.get_methods ()) {
                        if (m.is_abstract || m.is_virtual) {
                                if (m.coroutine) {
-                                       string finish_name = m.name;
-                                       if (finish_name.has_suffix ("_async")) {
-                                               finish_name = finish_name.substring (0, finish_name.length - "_async".length);
-                                       }
-                                       finish_name += "_finish";
-
                                        write_indent ();
-                                       buffer.append_printf("<field name=\"%s\"", m.name);
+                                       buffer.append_printf("<field name=\"%s\"", get_ccode_vfunc_name (m));
                                        write_symbol_attributes (m);
                                        buffer.append_printf (">\n");
                                        indent++;
-                                       do_write_signature (m, "callback", true, m.name, get_ccode_name (m), m.get_async_begin_parameters (), new VoidType (), false, false, false);
+                                       do_write_signature (m, "callback", true, get_ccode_vfunc_name (m), get_ccode_name (m), m.get_async_begin_parameters (), new VoidType (), false, false, false);
                                        indent--;
                                        write_indent ();
                                        buffer.append_printf ("</field>\n");
 
                                        write_indent ();
-                                       buffer.append_printf("<field name=\"%s\"", finish_name);
+                                       buffer.append_printf("<field name=\"%s\"", get_ccode_finish_vfunc_name (m));
                                        write_symbol_attributes (m);
                                        buffer.append_printf (">\n");
                                        indent++;
-                                       do_write_signature (m, "callback", true, finish_name, get_ccode_finish_name (m), m.get_async_end_parameters (), m.return_type, m.tree_can_fail, false, false);
+                                       do_write_signature (m, "callback", true, get_ccode_finish_vfunc_name (m), get_ccode_finish_name (m), m.get_async_end_parameters (), m.return_type, m.tree_can_fail, false, false);
                                        indent--;
                                        write_indent ();
                                        buffer.append_printf ("</field>\n");
                                } else {
                                        write_indent ();
-                                       buffer.append_printf("<field name=\"%s\"", m.name);
+                                       buffer.append_printf("<field name=\"%s\"", get_ccode_vfunc_name (m));
                                        write_symbol_attributes (m);
                                        buffer.append_printf (">\n");
                                        indent++;
-                                       do_write_signature (m, "callback", true, m.name, get_ccode_name (m), m.get_parameters (), m.return_type, m.tree_can_fail, false, false);
+                                       do_write_signature (m, "callback", true, get_ccode_vfunc_name (m), get_ccode_name (m), m.get_parameters (), m.return_type, m.tree_can_fail, false, false);
                                        indent--;
                                        write_indent ();
                                        buffer.append_printf ("</field>\n");
@@ -732,11 +720,11 @@ public class Vala.GIRWriter : CodeVisitor {
                                if (prop.get_accessor != null) {
                                        var m = prop.get_accessor.get_method ();
                                        write_indent ();
-                                       buffer.append_printf("<field name=\"%s\"", m.name);
+                                       buffer.append_printf("<field name=\"%s\"", get_ccode_vfunc_name (m));
                                        write_symbol_attributes (m);
                                        buffer.append_printf (">\n");
                                        indent++;
-                                       do_write_signature (m, "callback", true, m.name, get_ccode_name (m), m.get_parameters (), m.return_type, m.tree_can_fail, false, false);
+                                       do_write_signature (m, "callback", true, get_ccode_vfunc_name (m), get_ccode_name (m), m.get_parameters (), m.return_type, m.tree_can_fail, false, false);
                                        indent--;
                                        write_indent ();
                                        buffer.append_printf ("</field>\n");
@@ -745,11 +733,11 @@ public class Vala.GIRWriter : CodeVisitor {
                                if (prop.set_accessor != null && prop.set_accessor.writable) {
                                        var m = prop.set_accessor.get_method ();
                                        write_indent ();
-                                       buffer.append_printf("<field name=\"%s\"", m.name);
+                                       buffer.append_printf("<field name=\"%s\"", get_ccode_vfunc_name (m));
                                        write_symbol_attributes (m);
                                        buffer.append_printf (">\n");
                                        indent++;
-                                       do_write_signature (m, "callback", true, m.name, get_ccode_name (m), m.get_parameters (), m.return_type, m.tree_can_fail, false, false);
+                                       do_write_signature (m, "callback", true, get_ccode_vfunc_name (m), get_ccode_name (m), m.get_parameters (), m.return_type, m.tree_can_fail, false, false);
                                        indent--;
                                        write_indent ();
                                        buffer.append_printf ("</field>\n");
@@ -1299,15 +1287,10 @@ public class Vala.GIRWriter : CodeVisitor {
                }
 
                if (m.coroutine) {
-                       string finish_name = name;
-                       if (finish_name.has_suffix ("_async")) {
-                               finish_name = finish_name.substring (0, finish_name.length - "_async".length);
-                       }
-                       finish_name += "_finish";
-                       do_write_signature (m, tag_name, instance, name, get_ccode_name (m), m.get_async_begin_parameters (), new VoidType (), false, true, write_attributes);
-                       do_write_signature (m, tag_name, instance, finish_name, get_ccode_finish_name (m), m.get_async_end_parameters (), m.return_type, m.tree_can_fail, false, write_attributes);
+                       do_write_signature (m, tag_name, instance, get_ccode_vfunc_name (m), get_ccode_name (m), m.get_async_begin_parameters (), new VoidType (), false, true, write_attributes);
+                       do_write_signature (m, tag_name, instance, get_ccode_finish_vfunc_name (m), get_ccode_finish_name (m), m.get_async_end_parameters (), m.return_type, m.tree_can_fail, false, write_attributes);
                } else {
-                       do_write_signature (m, tag_name, instance, name, get_ccode_name (m), m.get_parameters (), m.return_type, m.tree_can_fail, true, write_attributes);
+                       do_write_signature (m, tag_name, instance, get_ccode_vfunc_name (m), get_ccode_name (m), m.get_parameters (), m.return_type, m.tree_can_fail, true, write_attributes);
                }
        }