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



commit 0de55f1f217683ab3d7dacb92a72c01ef16a9474
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 5496023c2..eddc1e206 100644
--- a/vala/valagirparser.vala
+++ b/vala/valagirparser.vala
@@ -1468,10 +1468,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]