[vala/staging: 1/2] codegen: Don't implicitly initialize local variables with an initializer



commit 770d117162b529ce551fd835a4b4112bc6d506ca
Author: Rico Tzschichholz <ricotz ubuntu com>
Date:   Thu Nov 10 11:52:16 2016 +0100

    codegen: Don't implicitly initialize local variables with an initializer

 codegen/valaccodebasemodule.vala |   12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)
---
diff --git a/codegen/valaccodebasemodule.vala b/codegen/valaccodebasemodule.vala
index a95023c..caeeabe 100644
--- a/codegen/valaccodebasemodule.vala
+++ b/codegen/valaccodebasemodule.vala
@@ -1190,7 +1190,9 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
                                lhs = new CCodeIdentifier (get_ccode_name (f));
 
                                var var_decl = new CCodeVariableDeclarator (get_ccode_name (f), null, 
get_ccode_declarator_suffix (f.variable_type));
-                               var_decl.initializer = default_value_for_type (f.variable_type, true);
+                               if (f.initializer == null) {
+                                       var_decl.initializer = default_value_for_type (f.variable_type, true);
+                               }
 
                                if (class_init_context != null) {
                                        push_context (class_init_context);
@@ -2358,7 +2360,9 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
 
                                // try to initialize uninitialized variables
                                // initialization not necessary for variables stored in closure
-                               cvar.initializer = default_value_for_type (local.variable_type, true);
+                               if (local.initializer == null) {
+                                       cvar.initializer = default_value_for_type (local.variable_type, true);
+                               }
                                cvar.init0 = true;
 
                                ccode.add_declaration (get_ccode_name (local.variable_type), cvar);
@@ -3488,7 +3492,9 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
                } else {
                        var cvar = new CCodeVariableDeclarator (local.name, null, get_ccode_declarator_suffix 
(local.variable_type));
                        if (init) {
-                               cvar.initializer = default_value_for_type (local.variable_type, true);
+                               if (local.initializer == null) {
+                                       cvar.initializer = default_value_for_type (local.variable_type, true);
+                               }
                                cvar.init0 = true;
                        }
                        ccode.add_declaration (get_ccode_name (local.variable_type), cvar);


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