[vala/0.50] girparser: Don't guess length of xml header, iterate forward to <repository>



commit 9cbe46d3982967e45d32c2392f6f74dff0b6b221
Author: Rico Tzschichholz <ricotz ubuntu com>
Date:   Fri Mar 19 16:00:49 2021 +0100

    girparser: Don't guess length of xml header, iterate forward to <repository>
    
    If e.g. the xml header is missing, it resulted in errors like:
    
        error: expected start element of `repository'
        error: unsupported GIR version (null) (supported: 1.2)

 vala/valagirparser.vala | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)
---
diff --git a/vala/valagirparser.vala b/vala/valagirparser.vala
index 6c8a5f2d5..ad0dbf69d 100644
--- a/vala/valagirparser.vala
+++ b/vala/valagirparser.vala
@@ -1479,10 +1479,14 @@ public class Vala.GirParser : CodeVisitor {
                reader = new MarkupReader (source_file.filename);
 
                // xml prolog
-               next ();
-               next ();
+               do {
+                       next ();
+                       if (current_token == MarkupTokenType.EOF) {
+                               Report.error (get_current_src (), "unexpected end of file");
+                               return;
+                       }
+               } while (current_token != MarkupTokenType.START_ELEMENT && reader.name != "repository");
 
-               next ();
                parse_repository ();
 
                reader = null;


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