]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/Workspace/MetaFileParser.py
BaseTools: Fixed metafile parser issues
[mirror_edk2.git] / BaseTools / Source / Python / Workspace / MetaFileParser.py
index eaedba0c121e0b938faa8c084631101e1ad729a3..032220813b41ca8cfe8c9fb5c6e482ecdd829b54 100644 (file)
@@ -206,9 +206,7 @@ class MetaFileParser(object):
     ## Set parsing complete flag in both class and table\r
     def _Done(self):\r
         self._Finished = True\r
-        ## Do not set end flag when processing included files\r
-        if self._From == -1:\r
-            self._Table.SetEndFlag()\r
+        self._Table.SetEndFlag()\r
 \r
     def _PostProcess(self):\r
         self._PostProcessed = True\r
@@ -241,13 +239,7 @@ class MetaFileParser(object):
             DataInfo = (DataInfo,)\r
 \r
         # Parse the file first, if necessary\r
-        if not self._Finished:\r
-            if self._RawTable.IsIntegrity():\r
-                self._Finished = True\r
-            else:\r
-                self._Table = self._RawTable\r
-                self._PostProcessed = False\r
-                self.Start()\r
+        self.StartParse()\r
 \r
         # No specific ARCH or Platform given, use raw data\r
         if self._RawTable and (len(DataInfo) == 1 or DataInfo[1] is None):\r
@@ -259,6 +251,14 @@ class MetaFileParser(object):
 \r
         return self._FilterRecordList(self._Table.Query(*DataInfo), DataInfo[1])\r
 \r
+    def StartParse(self):\r
+        if not self._Finished:\r
+            if self._RawTable.IsIntegrity():\r
+                self._Finished = True\r
+            else:\r
+                self._Table = self._RawTable\r
+                self._PostProcessed = False\r
+                self.Start()\r
     ## Data parser for the common format in different type of file\r
     #\r
     #   The common format in the meatfile is like\r
@@ -917,6 +917,7 @@ class DscParser(MetaFileParser):
         self._PcdCodeValue = ""\r
         self._PcdDataTypeCODE = False\r
         self._CurrentPcdName = ""\r
+        self._Content = None\r
 \r
     ## Parser starter\r
     def Start(self):\r
@@ -1645,9 +1646,7 @@ class DscParser(MetaFileParser):
             Parser._Scope = self._Scope\r
             Parser._Enabled = self._Enabled\r
             # Parse the included file\r
-            Parser.Start()\r
-\r
-\r
+            Parser.StartParse()\r
             # Insert all records in the table for the included file into dsc file table\r
             Records = IncludedFileTable.GetAll()\r
             if Records:\r