]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Fix compatibility with GLib 2.16 for D-Bus and GAsync support
authorMichal Hruby <michal.mhr@gmail.com>
Mon, 22 Mar 2010 08:56:36 +0000 (09:56 +0100)
committerJürg Billeter <j@bitron.ch>
Mon, 22 Mar 2010 08:56:36 +0000 (09:56 +0100)
Fixes bug 598546.

codegen/valadbusclientmodule.vala
codegen/valadbusmodule.vala
codegen/valagasyncmodule.vala

index f3c97c3e3dffffaf280e40c49d5ef96cf9525e4a..7d4e4c11b4ff8153fb3c94e40a08514208d071e0 100644 (file)
@@ -1703,10 +1703,11 @@ internal class Vala.DBusClientModule : DBusModule {
 
                generate_client_error_cases (error_block, error_types, new CCodeMemberAccess (new CCodeIdentifier ("_dbus_error"), "name"), new CCodeIdentifier ("_edomain"), new CCodeIdentifier ("_ecode"));
 
-               var g_set_error = new CCodeFunctionCall (new CCodeIdentifier ("g_set_error_literal"));
+               var g_set_error = new CCodeFunctionCall (new CCodeIdentifier ("g_set_error"));
                g_set_error.add_argument (new CCodeIdentifier ("error"));
                g_set_error.add_argument (new CCodeIdentifier ("_edomain"));
                g_set_error.add_argument (new CCodeIdentifier ("_ecode"));
+               g_set_error.add_argument (new CCodeConstant ("\"%s\""));
                g_set_error.add_argument (new CCodeMemberAccess (new CCodeIdentifier ("_dbus_error"), "message"));
                error_block.add_statement (new CCodeExpressionStatement (g_set_error));
 
@@ -1746,10 +1747,11 @@ internal class Vala.DBusClientModule : DBusModule {
                // throw error and return if proxy is disposed
                var dispose_return_block = new CCodeBlock ();
                if (m.get_error_types ().size > 0) {
-                       var set_error_call = new CCodeFunctionCall (new CCodeIdentifier ("g_set_error_literal"));
+                       var set_error_call = new CCodeFunctionCall (new CCodeIdentifier ("g_set_error"));
                        set_error_call.add_argument (new CCodeIdentifier ("error"));
                        set_error_call.add_argument (new CCodeIdentifier ("DBUS_GERROR"));
                        set_error_call.add_argument (new CCodeIdentifier ("DBUS_GERROR_DISCONNECTED"));
+                       set_error_call.add_argument (new CCodeConstant ("\"%s\""));
                        set_error_call.add_argument (new CCodeConstant ("\"Connection is closed\""));
                        dispose_return_block.add_statement (new CCodeExpressionStatement (set_error_call));
                }
index 8325aa6984fdd44c1377ee81eebaf68a6d7da9ce..83ff555d02f01ab29aa0e83540b852fd4a92e8e1 100644 (file)
@@ -256,10 +256,11 @@ internal class Vala.DBusModule : GAsyncModule {
                var error_block = new CCodeBlock ();
                error_block.suppress_newline = true;
 
-               var set_error_call = new CCodeFunctionCall (new CCodeIdentifier ("g_set_error_literal"));
+               var set_error_call = new CCodeFunctionCall (new CCodeIdentifier ("g_set_error"));
                set_error_call.add_argument (new CCodeIdentifier ("error"));
                set_error_call.add_argument (new CCodeIdentifier ("DBUS_GERROR"));
                set_error_call.add_argument (new CCodeIdentifier ("DBUS_GERROR_INVALID_ARGS"));
+               set_error_call.add_argument (new CCodeConstant ("\"%s\""));
                set_error_call.add_argument (new CCodeConstant ("\"Invalid enumeration value\""));
                error_block.add_statement (new CCodeExpressionStatement (set_error_call));
 
index c9d9d769fdab6fa8d6384179b2faf5ca2b3a2b20..ae3c1059826f4689cd148e4a8c27c0582dd5d9e3 100644 (file)
@@ -180,7 +180,16 @@ internal class Vala.GAsyncModule : GSignalModule {
 
                        create_result.add_argument (gobject_cast);
                } else {
-                       create_result.add_argument (new CCodeConstant ("NULL"));
+                       if (context.require_glib_version (2, 20)) {
+                               create_result.add_argument (new CCodeConstant ("NULL"));
+                       } else {
+                               var object_creation = new CCodeFunctionCall (new CCodeIdentifier ("g_object_newv"));
+                               object_creation.add_argument (new CCodeConstant ("G_TYPE_OBJECT"));
+                               object_creation.add_argument (new CCodeConstant ("0"));
+                               object_creation.add_argument (new CCodeConstant ("NULL"));
+
+                               create_result.add_argument (object_creation);
+                       }
                }
 
                create_result.add_argument (new CCodeIdentifier ("_callback_"));