From: Jürg Billeter Date: Fri, 14 Nov 2008 18:13:48 +0000 (+0000) Subject: Do not use possibly uninitialized variables X-Git-Tag: VALA_0_5_2~94 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=773507ce6043e1e05f7fccceaf01723b1dbe81de;p=thirdparty%2Fvala.git Do not use possibly uninitialized variables 2008-11-14 Jürg Billeter * 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 --- diff --git a/ChangeLog b/ChangeLog index 6e272da77..cb527202d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,22 @@ +2008-11-14 Jürg Billeter + + * 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 * vala/valacfgbuilder.vala: diff --git a/gen-project/valaprojectgenerator.vala b/gen-project/valaprojectgenerator.vala index f63f95f20..699a459d2 100644 --- a/gen-project/valaprojectgenerator.vala +++ b/gen-project/valaprojectgenerator.vala @@ -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); diff --git a/gobject/valaccodeassignmentmodule.vala b/gobject/valaccodeassignmentmodule.vala index a1262b28d..4f38899ef 100644 --- a/gobject/valaccodeassignmentmodule.vala +++ b/gobject/valaccodeassignmentmodule.vala @@ -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)); } diff --git a/gobject/valaccodebasemodule.vala b/gobject/valaccodebasemodule.vala index f95fc7d8c..4f29b6b64 100644 --- a/gobject/valaccodebasemodule.vala +++ b/gobject/valaccodebasemodule.vala @@ -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)); diff --git a/gobject/valaccodeinvocationexpressionmodule.vala b/gobject/valaccodeinvocationexpressionmodule.vala index fb993e1ff..5049b91d6 100644 --- a/gobject/valaccodeinvocationexpressionmodule.vala +++ b/gobject/valaccodeinvocationexpressionmodule.vala @@ -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 { diff --git a/vala/valagenieparser.vala b/vala/valagenieparser.vala index d004710af..436cb0980 100644 --- a/vala/valagenieparser.vala +++ b/vala/valagenieparser.vala @@ -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 size_specifier_list; + Gee.List 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")); diff --git a/vala/valainterface.vala b/vala/valainterface.vala index 51ba8c0a3..ee5385314 100644 --- a/vala/valainterface.vala +++ b/vala/valainterface.vala @@ -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 */ diff --git a/vala/valainterfacewriter.vala b/vala/valainterfacewriter.vala index f2cfcfe56..08864812e 100644 --- a/vala/valainterfacewriter.vala +++ b/vala/valainterfacewriter.vala @@ -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; diff --git a/vala/valaparser.vala b/vala/valaparser.vala index 9fce44012..eed1316e7 100644 --- a/vala/valaparser.vala +++ b/vala/valaparser.vala @@ -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 size_specifier_list; + Gee.List 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; } diff --git a/vala/valasemanticanalyzer.vala b/vala/valasemanticanalyzer.vala index 8df4672c3..5624a9e49 100644 --- a/vala/valasemanticanalyzer.vala +++ b/vala/valasemanticanalyzer.vala @@ -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; diff --git a/vapi/glib-2.0.vapi b/vapi/glib-2.0.vapi index 2266b3dbf..25348958f 100644 --- a/vapi/glib-2.0.vapi +++ b/vapi/glib-2.0.vapi @@ -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); diff --git a/vapigen/valagidlparser.vala b/vapigen/valagidlparser.vala index cc5b7d6bf..c7d8fbb7c 100644 --- a/vapigen/valagidlparser.vala +++ b/vapigen/valagidlparser.vala @@ -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 ("#")) { diff --git a/vapigen/valagirparser.vala b/vapigen/valagirparser.vala index a8b6fc20d..d684e939c 100644 --- a/vapigen/valagirparser.vala +++ b/vapigen/valagirparser.vala @@ -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 ("#")) { diff --git a/vapigen/valamarkupreader.vala b/vapigen/valamarkupreader.vala index 3c308d04f..0ca27dcec 100644 --- a/vapigen/valamarkupreader.vala +++ b/vapigen/valamarkupreader.vala @@ -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; diff --git a/vapigen/valavapicheck.vala b/vapigen/valavapicheck.vala index be9bffaf0..50ecd9252 100644 --- a/vapigen/valavapicheck.vala +++ b/vapigen/valavapicheck.vala @@ -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)) {