]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Do not use possibly uninitialized variables
authorJürg Billeter <j@bitron.ch>
Fri, 14 Nov 2008 18:13:48 +0000 (18:13 +0000)
committerJürg Billeter <juergbi@src.gnome.org>
Fri, 14 Nov 2008 18:13:48 +0000 (18:13 +0000)
2008-11-14  Jürg Billeter  <j@bitron.ch>

* vala/valagenieparser.vala:
* vala/valainterface.vala:
* vala/valainterfacewriter.vala:
* vala/valaparser.vala:
* vala/valasemanticanalyzer.vala:
* gobject/valaccodeassignmentmodule.vala:
* gobject/valaccodebasemodule.vala:
* gobject/valaccodeinvocationexpressionmodule.vala:
* vapi/glib-2.0.vapi:
* vapigen/valagidlparser.vala:
* vapigen/valagirparser.vala:
* vapigen/valamarkupreader.vala:
* vapigen/valavapicheck.vala:
* gen-project/valaprojectgenerator.vala:

Do not use possibly uninitialized variables

svn path=/trunk/; revision=2017

15 files changed:
ChangeLog
gen-project/valaprojectgenerator.vala
gobject/valaccodeassignmentmodule.vala
gobject/valaccodebasemodule.vala
gobject/valaccodeinvocationexpressionmodule.vala
vala/valagenieparser.vala
vala/valainterface.vala
vala/valainterfacewriter.vala
vala/valaparser.vala
vala/valasemanticanalyzer.vala
vapi/glib-2.0.vapi
vapigen/valagidlparser.vala
vapigen/valagirparser.vala
vapigen/valamarkupreader.vala
vapigen/valavapicheck.vala

index 6e272da77a5b561d2edbb4e4acfec5e77e89ea46..cb527202d8ed098e2457f3ed4b5940803bcd3052 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,22 @@
+2008-11-14  Jürg Billeter  <j@bitron.ch>
+
+       * vala/valagenieparser.vala:
+       * vala/valainterface.vala:
+       * vala/valainterfacewriter.vala:
+       * vala/valaparser.vala:
+       * vala/valasemanticanalyzer.vala:
+       * gobject/valaccodeassignmentmodule.vala:
+       * gobject/valaccodebasemodule.vala:
+       * gobject/valaccodeinvocationexpressionmodule.vala:
+       * vapi/glib-2.0.vapi:
+       * vapigen/valagidlparser.vala:
+       * vapigen/valagirparser.vala:
+       * vapigen/valamarkupreader.vala:
+       * vapigen/valavapicheck.vala:
+       * gen-project/valaprojectgenerator.vala:
+
+       Do not use possibly uninitialized variables
+
 2008-11-14  Jürg Billeter  <j@bitron.ch>
 
        * vala/valacfgbuilder.vala:
index f63f95f20348f4b1217d0a13ca658552eab06258..699a459d2a3afe4d4ec272e4eddab804d4f6ed9f 100644 (file)
@@ -374,8 +374,7 @@ class Vala.ProjectGenerator : Dialog {
        private string generate_source_file_header (string filename) {
                var s = new StringBuilder ();
 
-               TimeVal tv;
-               tv.get_current_time ();
+               TimeVal tv = TimeVal ();
                Date d = Date ();
                d.set_time_val (tv);
 
index a1262b28d9273cf85e3f07d715d7974a060f389a..4f38899efcc6d2beed0bdb091c7b2b6f77a0ad59 100644 (file)
@@ -70,6 +70,8 @@ public class Vala.CCodeAssignmentModule : CCodeMemberAccessModule {
                                        cop = CCodeBinaryOperator.SHIFT_LEFT;
                                } else if (assignment.operator == AssignmentOperator.SHIFT_RIGHT) {
                                        cop = CCodeBinaryOperator.SHIFT_RIGHT;
+                               } else {
+                                       assert_not_reached ();
                                }
                                cexpr = new CCodeBinaryExpression (cop, (CCodeExpression) get_ccodenode (assignment.left), new CCodeParenthesizedExpression (cexpr));
                        }
index f95fc7d8c7f2170dbcd11852a074892d32441635..4f29b6b647a5d63526939ec618c63ae8982b3f3d 100644 (file)
@@ -2338,7 +2338,7 @@ public class Vala.CCodeBaseModule : CCodeModule {
                }
 
                if (expr.symbol_reference == null) {
-                       CCodeFunctionCall creation_call;
+                       CCodeFunctionCall creation_call = null;
 
                        // no creation method
                        if (expr.type_reference.data_type == glist_type ||
@@ -2616,6 +2616,8 @@ public class Vala.CCodeBaseModule : CCodeModule {
                        op = CCodeUnaryOperator.ADDRESS_OF;
                } else if (expr.operator == UnaryOperator.OUT) {
                        op = CCodeUnaryOperator.ADDRESS_OF;
+               } else {
+                       assert_not_reached ();
                }
                expr.ccodenode = new CCodeUnaryExpression (op, (CCodeExpression) expr.inner.ccodenode);
        }
@@ -2743,6 +2745,8 @@ public class Vala.CCodeBaseModule : CCodeModule {
                
                        expr.ccodenode = new CCodeBinaryExpression (CCodeBinaryOperator.EQUALITY, new CCodeParenthesizedExpression (new CCodeBinaryExpression (CCodeBinaryOperator.BITWISE_AND, new CCodeParenthesizedExpression (cright), new CCodeParenthesizedExpression (cleft))), new CCodeParenthesizedExpression (cleft));
                        return;
+               } else {
+                       assert_not_reached ();
                }
                
                if (expr.operator == BinaryOperator.EQUALITY ||
@@ -2782,11 +2786,15 @@ public class Vala.CCodeBaseModule : CCodeModule {
                                                left = ((CCodeIdentifier) cleft).name;
                                        } else if (cleft is CCodeConstant) {
                                                left = ((CCodeConstant) cleft).name;
+                                       } else {
+                                               assert_not_reached ();
                                        }
                                        if (cright is CCodeIdentifier) {
                                                right = ((CCodeIdentifier) cright).name;
                                        } else if (cright is CCodeConstant) {
                                                right = ((CCodeConstant) cright).name;
+                                       } else {
+                                               assert_not_reached ();
                                        }
 
                                        expr.ccodenode = new CCodeConstant ("%s %s".printf (left, right));
index fb993e1ff58b6721fcafcc14ea4c565092d326f7..5049b91d6b868957d58cd9612d7f23331d44cc09 100644 (file)
@@ -73,7 +73,7 @@ public class Vala.CCodeInvocationExpressionModule : CCodeAssignmentModule {
                        requires_array_move = true;
                }
 
-               CCodeExpression instance;
+               CCodeExpression instance = null;
                if (m != null && m.binding == MemberBinding.INSTANCE && !(m is CreationMethod)) {
                        instance = (CCodeExpression) ma.inner.ccodenode;
 
@@ -258,7 +258,7 @@ public class Vala.CCodeInvocationExpressionModule : CCodeAssignmentModule {
                                                }
 
                                                // call function
-                                               LocalVariable ret_temp_var;
+                                               LocalVariable ret_temp_var = null;
                                                if (m.return_type is VoidType) {
                                                        ccomma.append_expression (ccall_expr);
                                                } else {
index d004710afb020f429c634a085bf21afbff0534a9..436cb0980f8457e1692fddfd0ab503422f7e738c 100644 (file)
@@ -886,7 +886,7 @@ public class Vala.Genie.Parser : CodeVisitor {
 
        Expression parse_array_creation_expression (SourceLocation begin, MemberAccess member) throws ParseError {
                bool size_specified = false;
-               Gee.List<Expression> size_specifier_list;
+               Gee.List<Expression> size_specifier_list = null;
                bool first = true;
                DataType element_type = UnresolvedType.new_from_expression (member);
                
@@ -1482,7 +1482,7 @@ public class Vala.Genie.Parser : CodeVisitor {
                       && current () != TokenType.WHEN
                       && current () != TokenType.DEFAULT) {
                        try {
-                               Statement stmt;
+                               Statement stmt = null;
                                bool is_decl = false;
                                comment = scanner.pop_comment ();
                                switch (current ()) {
@@ -2203,14 +2203,14 @@ public class Vala.Genie.Parser : CodeVisitor {
                                }
                        } catch (ParseError e) {
                                int r;
-                               while (true) {
+                               do {
                                        r = recover ();
                                        if (r == RecoveryState.STATEMENT_BEGIN) {
                                                next ();
                                        } else {
                                                break;
                                        }
-                               }
+                               } while (true);
                                if (r == RecoveryState.EOF) {
                                        return;
                                }
@@ -2792,7 +2792,7 @@ public class Vala.Genie.Parser : CodeVisitor {
                                        prop.get_accessor = new PropertyAccessor (true, false, false, block, get_src (accessor_begin));
                                        prop.get_accessor.access = SymbolAccessibility.PUBLIC;
                                } else {
-                                       bool _construct;
+                                       bool _construct = false;
                                        if (accept (TokenType.SET)) {
                                                if (readonly) {
                                                        throw new ParseError.SYNTAX (get_error ("set block not allowed for a read only property"));
index 51ba8c0a3feb38fd6de945736218f9d01e66198c..ee53853144df2040fb19336cc907b4a6c532b6f5 100644 (file)
@@ -570,7 +570,7 @@ public class Vala.Interface : ObjectTypeSymbol {
                }
 
                /* check prerequisites */
-               Class prereq_class;
+               Class prereq_class = null;
                foreach (DataType prereq in get_prerequisites ()) {
                        TypeSymbol class_or_interface = prereq.data_type;
                        /* skip on previous errors */
index f2cfcfe56ef7007e346daf3f25e4d1fadee7459d..08864812ea1a28fce152cb32352ed2dd08d7ca16 100644 (file)
@@ -156,7 +156,7 @@ public class Vala.InterfaceWriter : CodeVisitor {
                }
 
                bool first = true;
-               string cheaders;
+               string cheaders = "";
                foreach (string cheader in cl.get_cheader_filenames ()) {
                        if (first) {
                                cheaders = cheader;
@@ -273,7 +273,7 @@ public class Vala.InterfaceWriter : CodeVisitor {
                }
 
                var first = true;
-               string cheaders;
+               string cheaders = "";
                foreach (string cheader in st.get_cheader_filenames ()) {
                        if (first) {
                                cheaders = cheader;
@@ -351,7 +351,7 @@ public class Vala.InterfaceWriter : CodeVisitor {
                write_indent ();
 
                var first = true;
-               string cheaders;
+               string cheaders = "";
                foreach (string cheader in iface.get_cheader_filenames ()) {
                        if (first) {
                                cheaders = cheader;
@@ -432,7 +432,7 @@ public class Vala.InterfaceWriter : CodeVisitor {
                write_indent ();
 
                bool first = true;
-               string cheaders;
+               string cheaders = "";
                foreach (string cheader in en.get_cheader_filenames ()) {
                        if (first) {
                                cheaders = cheader;
@@ -507,7 +507,7 @@ public class Vala.InterfaceWriter : CodeVisitor {
                write_indent ();
 
                var first = true;
-               string cheaders;
+               string cheaders = "";
                foreach (string cheader in edomain.get_cheader_filenames ()) {
                        if (first) {
                                cheaders = cheader;
@@ -562,7 +562,7 @@ public class Vala.InterfaceWriter : CodeVisitor {
                                }
 
                                bool first = true;
-                               string cheaders;
+                               string cheaders = "";
                                foreach (string cheader in c.get_cheader_filenames ()) {
                                        if (first) {
                                                cheaders = cheader;
@@ -623,7 +623,7 @@ public class Vala.InterfaceWriter : CodeVisitor {
                                }
 
                                bool first = true;
-                               string cheaders;
+                               string cheaders = "";
                                foreach (string cheader in f.get_cheader_filenames ()) {
                                        if (first) {
                                                cheaders = cheader;
@@ -764,7 +764,7 @@ public class Vala.InterfaceWriter : CodeVisitor {
                write_indent ();
 
                var first = true;
-               string cheaders;
+               string cheaders = "";
                foreach (string cheader in cb.get_cheader_filenames ()) {
                        if (first) {
                                cheaders = cheader;
@@ -834,7 +834,7 @@ public class Vala.InterfaceWriter : CodeVisitor {
                }
                if (m.parent_symbol is Namespace) {
                        bool first = true;
-                       string cheaders;
+                       string cheaders = "";
                        foreach (string cheader in m.get_cheader_filenames ()) {
                                if (first) {
                                        cheaders = cheader;
index 9fce44012387a06b5538248dccd55ed3d6bd7dad..eed1316e7e8a0a09cb1ac8a3bb102ca85b17a4f0 100644 (file)
@@ -685,7 +685,7 @@ public class Vala.Parser : CodeVisitor {
 
        Expression parse_array_creation_expression (SourceLocation begin, MemberAccess member) throws ParseError {
                bool size_specified = false;
-               Gee.List<Expression> size_specifier_list;
+               Gee.List<Expression> size_specifier_list = null;
                bool first = true;
                DataType element_type = UnresolvedType.new_from_expression (member);
                do {
@@ -1170,7 +1170,7 @@ public class Vala.Parser : CodeVisitor {
                       && current () != TokenType.CASE
                       && current () != TokenType.DEFAULT) {
                        try {
-                               Statement stmt;
+                               Statement stmt = null;
                                bool is_decl = false;
                                comment = scanner.pop_comment ();
                                switch (current ()) {
@@ -1788,14 +1788,14 @@ public class Vala.Parser : CodeVisitor {
                                }
                        } catch (ParseError e) {
                                int r;
-                               while (true) {
+                               do {
                                        r = recover ();
                                        if (r == RecoveryState.STATEMENT_BEGIN) {
                                                next ();
                                        } else {
                                                break;
                                        }
-                               }
+                               } while (true);
                                if (r == RecoveryState.EOF) {
                                        return;
                                }
index 8df4672c3ee16e7eadbfe6017b43cd21d0656897..5624a9e49926b22c0380b0a32c6736f1c625e66b 100644 (file)
@@ -599,7 +599,7 @@ public class Vala.SemanticAnalyzer : CodeVisitor {
                        Report.error (init.source_reference, "Access to private member `%s' denied".printf (init.symbol_reference.get_full_name ()));
                        return;
                }
-               DataType member_type;
+               DataType member_type = null;
                if (init.symbol_reference is Field) {
                        var f = (Field) init.symbol_reference;
                        member_type = f.field_type;
index 2266b3dbff9e2a660a4e0e131590f3df7b364fc1..25348958ff7110d5c7614bfc9bc306ad481719c9 100644 (file)
@@ -1544,6 +1544,8 @@ namespace GLib {
                public long tv_sec;
                public long tv_usec;
 
+               [CCode (cname = "g_get_current_time")]
+               public TimeVal ();
                [CCode (cname = "g_get_current_time")]
                public void get_current_time ();
                public void add (long microseconds);
index cc5b7d6bf106efef159f7052eb4b71ff449be5c9..c7d8fbb7c141e93fbf2ec69f1557244ea666d489 100644 (file)
@@ -108,8 +108,7 @@ public class Vala.GIdlParser : CodeVisitor {
                if (FileUtils.test (metadata_filename, FileTest.EXISTS)) {
                        try {
                                string metadata;
-                               ulong metadata_len;
-                               FileUtils.get_contents (metadata_filename, out metadata, out metadata_len);
+                               FileUtils.get_contents (metadata_filename, out metadata, null);
                                
                                foreach (string line in metadata.split ("\n")) {
                                        if (line.has_prefix ("#")) {
index a8b6fc20d130b18161f721180679e74cb95dc3f9..d684e939c233e028a289bfdd685bf0e36859894e 100644 (file)
@@ -320,7 +320,7 @@ public class Vala.GirParser : CodeVisitor {
                        start_element ("parameters");
                        next ();
                        while (current_token == MarkupTokenType.START_ELEMENT) {
-                               int array_length_idx = -1;
+                               int array_length_idx;
                                var param = parse_parameter (out array_length_idx);
                                if (array_length_idx != -1) {
                                        array_length_parameters.add (array_length_idx);
@@ -353,7 +353,11 @@ public class Vala.GirParser : CodeVisitor {
        }
 
        FormalParameter parse_parameter (out int array_length_idx = null) {
-               FormalParameter param = null;
+               FormalParameter param;
+
+               if (&array_length_idx != null) {
+                       array_length_idx = -1;
+               }
 
                start_element ("parameter");
                string name = reader.get_attribute ("name");
@@ -841,8 +845,7 @@ public class Vala.GirParser : CodeVisitor {
                if (FileUtils.test (metadata_filename, FileTest.EXISTS)) {
                        try {
                                string metadata;
-                               ulong metadata_len;
-                               FileUtils.get_contents (metadata_filename, out metadata, out metadata_len);
+                               FileUtils.get_contents (metadata_filename, out metadata, null);
                                
                                foreach (string line in metadata.split ("\n")) {
                                        if (line.has_prefix ("#")) {
index 3c308d04f7548a4b6df9606ae141031b2fb20fe0..0ca27dcecd06a19cb4cfd4056cf76827c858102c 100644 (file)
@@ -96,7 +96,7 @@ public class Vala.MarkupReader : Object {
 
                space ();
 
-               MarkupTokenType type;
+               MarkupTokenType type = MarkupTokenType.NONE;
                char* begin = current;
                token_begin.pos = begin;
                token_begin.line = line;
index be9bffaf0ddff99ee0042871900afd0b1a335c29..50ecd9252fad25a6bb7b4ae5b5f2b8aa2092d270 100644 (file)
@@ -129,7 +129,7 @@ class Vala.VAPICheck : Object {
        private int check_metadata () {
                try {
                        var metafile = new IOChannel.file (metadata.filename, "r");
-                       string line = null;
+                       string line;
                        int lineno = 1;
 
                        while (IOStatus.NORMAL == metafile.read_line (out line, null, null)) {