fix infinite loop on invalid syntax, fixes bug 528017
authorJuerg Billeter <j@bitron.ch>
Mon, 14 Apr 2008 18:00:04 +0000 (18:00 +0000)
committerJürg Billeter <juergbi@src.gnome.org>
Mon, 14 Apr 2008 18:00:04 +0000 (18:00 +0000)
2008-04-14  Juerg Billeter  <j@bitron.ch>

* vala/valaparser.vala: fix infinite loop on invalid syntax,
  fixes bug 528017

svn path=/trunk/; revision=1225

ChangeLog
vala/valaparser.vala

index cd97ee7..a624c32 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2008-04-14  Jürg Billeter  <j@bitron.ch>
 
+       * vala/valaparser.vala: fix infinite loop on invalid syntax,
+         fixes bug 528017
+
+2008-04-14  Jürg Billeter  <j@bitron.ch>
+
        * vala/valaparser.vala: report warning when using weak type
          modifier in cast expressions, fixes bug 527990
 
index f532bb4..32ba75a 100644 (file)
@@ -1648,9 +1648,14 @@ public class Vala.Parser : CodeVisitor {
                                }
                        } catch (ParseError e) {
                                int r;
-                               do {
+                               while (true) {
                                        r = recover ();
-                               } while (r == RecoveryState.STATEMENT_BEGIN);
+                                       if (r == RecoveryState.STATEMENT_BEGIN) {
+                                               next ();
+                                       } else {
+                                               break;
+                                       }
+                               }
                                if (r == RecoveryState.EOF) {
                                        return;
                                }