[vala/staging] codegen: Re-use CCodeIdentifier ("_data_")



commit 136c400d312cafd127dc6d223c4e2970ed8e1585
Author: Rico Tzschichholz <ricotz ubuntu com>
Date:   Wed Dec 14 19:37:12 2016 +0100

    codegen: Re-use CCodeIdentifier ("_data_")

 codegen/valaccodemethodmodule.vala |   11 ++++++-----
 codegen/valagasyncmodule.vala      |   12 +++++++-----
 2 files changed, 13 insertions(+), 10 deletions(-)
---
diff --git a/codegen/valaccodemethodmodule.vala b/codegen/valaccodemethodmodule.vala
index 6d8d3b6..35de6de 100644
--- a/codegen/valaccodemethodmodule.vala
+++ b/codegen/valaccodemethodmodule.vala
@@ -124,18 +124,19 @@ public abstract class Vala.CCodeMethodModule : CCodeStructModule {
        }
 
        public void complete_async () {
-               var async_result_expr = new CCodeMemberAccess.pointer (new CCodeIdentifier ("_data_"), 
"_async_result");
+               var data_var = new CCodeIdentifier ("_data_");
+               var async_result_expr = new CCodeMemberAccess.pointer (data_var, "_async_result");
 
                if (context.require_glib_version (2, 36)) {
                        var finish_call = new CCodeFunctionCall (new CCodeIdentifier 
("g_task_return_pointer"));
                        finish_call.add_argument (async_result_expr);
-                       finish_call.add_argument (new CCodeIdentifier ("_data_"));
+                       finish_call.add_argument (data_var);
                        finish_call.add_argument (new CCodeConstant ("NULL"));
                        ccode.add_expression (finish_call);
 
                        // Preserve the "complete now" behavior if state != 0, do so by
                        //  iterating the GTask's main context till the task is complete.
-                       var state = new CCodeMemberAccess.pointer (new CCodeIdentifier ("_data_"), "_state_");
+                       var state = new CCodeMemberAccess.pointer (data_var, "_state_");
                        var zero = new CCodeConstant ("0");
                        var state_is_not_zero = new CCodeBinaryExpression (CCodeBinaryOperator.INEQUALITY, 
state, zero);
                        ccode.open_if (state_is_not_zero);
@@ -147,7 +148,7 @@ public abstract class Vala.CCodeMethodModule : CCodeStructModule {
                                task_complete.add_argument (async_result_expr);
                                task_is_complete = new CCodeBinaryExpression (CCodeBinaryOperator.INEQUALITY, 
task_complete, new CCodeConstant ("TRUE"));
                        } else {
-                               var task_complete = new CCodeMemberAccess.pointer (new CCodeIdentifier 
("_data_"), "_task_complete_");
+                               var task_complete = new CCodeMemberAccess.pointer (data_var, 
"_task_complete_");
                                task_is_complete = new CCodeBinaryExpression (CCodeBinaryOperator.INEQUALITY, 
task_complete, new CCodeConstant ("TRUE"));
                        }
 
@@ -162,7 +163,7 @@ public abstract class Vala.CCodeMethodModule : CCodeStructModule {
 
                        ccode.close ();
                } else {
-                       var state = new CCodeMemberAccess.pointer (new CCodeIdentifier ("_data_"), "_state_");
+                       var state = new CCodeMemberAccess.pointer (data_var, "_state_");
                        var zero = new CCodeConstant ("0");
                        var state_is_zero = new CCodeBinaryExpression (CCodeBinaryOperator.EQUALITY, state, 
zero);
                        ccode.open_if (state_is_zero);
diff --git a/codegen/valagasyncmodule.vala b/codegen/valagasyncmodule.vala
index d389ae6..a077b4a 100644
--- a/codegen/valagasyncmodule.vala
+++ b/codegen/valagasyncmodule.vala
@@ -696,17 +696,19 @@ public class Vala.GAsyncModule : GtkModule {
 
                push_function (readyfunc);
 
+               var data_var = new CCodeIdentifier ("_data_");
+
                ccode.add_declaration (dataname + "*", new CCodeVariableDeclarator ("_data_"));
-               ccode.add_assignment (new CCodeIdentifier ("_data_"), new CCodeIdentifier ("_user_data_"));
-               ccode.add_assignment (new CCodeMemberAccess.pointer (new CCodeIdentifier ("_data_"), 
"_source_object_"), new CCodeIdentifier ("source_object"));
-               ccode.add_assignment (new CCodeMemberAccess.pointer (new CCodeIdentifier ("_data_"), 
"_res_"), new CCodeIdentifier ("_res_"));
+               ccode.add_assignment (data_var, new CCodeIdentifier ("_user_data_"));
+               ccode.add_assignment (new CCodeMemberAccess.pointer (data_var, "_source_object_"), new 
CCodeIdentifier ("source_object"));
+               ccode.add_assignment (new CCodeMemberAccess.pointer (data_var, "_res_"), new CCodeIdentifier 
("_res_"));
 
                if (context.require_glib_version (2, 36) && !context.require_glib_version (2, 44)) {
-                       ccode.add_assignment (new CCodeMemberAccess.pointer (new CCodeIdentifier ("_data_"), 
"_task_complete_"), new CCodeConstant ("TRUE"));
+                       ccode.add_assignment (new CCodeMemberAccess.pointer (data_var, "_task_complete_"), 
new CCodeConstant ("TRUE"));
                }
 
                var ccall = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_real_name (m) + "_co"));
-               ccall.add_argument (new CCodeIdentifier ("_data_"));
+               ccall.add_argument (data_var);
                ccode.add_expression (ccall);
 
                readyfunc.modifiers |= CCodeModifiers.STATIC;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]