[edk2] [PATCH v1 29/42] BaseTools: AutoGen - refactor more functions only called in __init__

Jaben Carsey posted 42 patches 7 years, 9 months ago
[edk2] [PATCH v1 29/42] BaseTools: AutoGen - refactor more functions only called in __init__
Posted by Jaben Carsey 7 years, 9 months ago
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Jaben Carsey <jaben.carsey@intel.com>
---
 BaseTools/Source/Python/AutoGen/IdfClassObject.py | 89 +++++++++-----------
 1 file changed, 40 insertions(+), 49 deletions(-)

diff --git a/BaseTools/Source/Python/AutoGen/IdfClassObject.py b/BaseTools/Source/Python/AutoGen/IdfClassObject.py
index 82396d3744d5..7bc4e4ffb57b 100644
--- a/BaseTools/Source/Python/AutoGen/IdfClassObject.py
+++ b/BaseTools/Source/Python/AutoGen/IdfClassObject.py
@@ -66,61 +66,52 @@ EFI_HII_PACKAGE_TYPE_SYSTEM_END    = 0xFF
 
 class IdfFileClassObject(object):
     def __init__(self, FileList = []):
-        self.FileList = FileList
         self.ImageFilesDict = {}
         self.ImageIDList = []
-        if len(self.FileList) > 0:
-            self.LoadIdfFiles(FileList)
+        for File in FileList:
+            if File is None:
+                EdkLogger.error("Image Definition File Parser", PARSER_ERROR, 'No Image definition file is given.')
+            self.File = File
 
-    def LoadIdfFiles(self, FileList):
-        if len(FileList) > 0:
-            for File in FileList:
-                self.LoadIdfFile(File)
+            try:
+                IdfFile = open(LongFilePath(File.Path), mode='r')
+                FileIn = IdfFile.read()
+                IdfFile.close()
+            except:
+                EdkLogger.error("build", FILE_OPEN_FAILURE, ExtraData=File)
 
-    def LoadIdfFile(self, File = None):
-        if File is None:
-            EdkLogger.error("Image Definition File Parser", PARSER_ERROR, 'No Image definition file is given.')
-        self.File = File
+            ImageFileList = []
+            for Line in FileIn.splitlines():
+                Line = Line.strip()
+                Line = StripComments(Line)
+                if len(Line) == 0:
+                    continue
 
-        try:
-            IdfFile = open(LongFilePath(File.Path), mode='r')
-            FileIn = IdfFile.read()
-            IdfFile.close()
-        except:
-            EdkLogger.error("build", FILE_OPEN_FAILURE, ExtraData=File)
+                LineNo = GetLineNo(FileIn, Line, False)
+                if not Line.startswith('#image '):
+                    EdkLogger.error("Image Definition File Parser", PARSER_ERROR, 'The %s in Line %s of File %s is invalid.' % (Line, LineNo, File.Path))
 
-        ImageFileList = []
-        for Line in FileIn.splitlines():
-            Line = Line.strip()
-            Line = StripComments(Line)
-            if len(Line) == 0:
-                continue
-
-            LineNo = GetLineNo(FileIn, Line, False)
-            if not Line.startswith('#image '):
-                EdkLogger.error("Image Definition File Parser", PARSER_ERROR, 'The %s in Line %s of File %s is invalid.' % (Line, LineNo, File.Path))
-
-            if Line.find('#image ') >= 0:
-                LineDetails = Line.split()
-                Len = len(LineDetails)
-                if Len != 3 and Len != 4:
-                    EdkLogger.error("Image Definition File Parser", PARSER_ERROR, 'The format is not match #image IMAGE_ID [TRANSPARENT] ImageFileName in Line %s of File %s.' % (LineNo, File.Path))
-                if Len == 4 and LineDetails[2] != 'TRANSPARENT':
-                    EdkLogger.error("Image Definition File Parser", PARSER_ERROR, 'Please use the keyword "TRANSPARENT" to describe the transparency setting in Line %s of File %s.' % (LineNo, File.Path))
-                MatchString = gIdentifierPattern.match(LineDetails[1])
-                if MatchString is None:
-                    EdkLogger.error('Image Definition  File Parser', FORMAT_INVALID, 'The Image token name %s defined in Idf file %s contains the invalid character.' % (LineDetails[1], File.Path))
-                if LineDetails[1] not in self.ImageIDList:
-                    self.ImageIDList.append(LineDetails[1])
-                else:
-                    EdkLogger.error("Image Definition File Parser", PARSER_ERROR, 'The %s in Line %s of File %s is already defined.' % (LineDetails[1], LineNo, File.Path))
-                if Len == 4:
-                    ImageFile = ImageFileObject(LineDetails[Len-1], LineDetails[1], True)
-                else:
-                    ImageFile = ImageFileObject(LineDetails[Len-1], LineDetails[1], False)
-                ImageFileList.append(ImageFile)
-        if ImageFileList:
-            self.ImageFilesDict[File] = ImageFileList
+                if Line.find('#image ') >= 0:
+                    LineDetails = Line.split()
+                    Len = len(LineDetails)
+                    if Len != 3 and Len != 4:
+                        EdkLogger.error("Image Definition File Parser", PARSER_ERROR, 'The format is not match #image IMAGE_ID [TRANSPARENT] ImageFileName in Line %s of File %s.' % (LineNo, File.Path))
+                    if Len == 4 and LineDetails[2] != 'TRANSPARENT':
+                        EdkLogger.error("Image Definition File Parser", PARSER_ERROR, 'Please use the keyword "TRANSPARENT" to describe the transparency setting in Line %s of File %s.' % (LineNo, File.Path))
+                    MatchString = gIdentifierPattern.match(LineDetails[1])
+                    if MatchString is None:
+                        EdkLogger.error('Image Definition  File Parser', FORMAT_INVALID, 'The Image token name %s defined in Idf file %s contains the invalid character.' % (LineDetails[1], File.Path))
+                    if LineDetails[1] not in self.ImageIDList:
+                        self.ImageIDList.append(LineDetails[1])
+                    else:
+                        EdkLogger.error("Image Definition File Parser", PARSER_ERROR, 'The %s in Line %s of File %s is already defined.' % (LineDetails[1], LineNo, File.Path))
+                    if Len == 4:
+                        ImageFile = ImageFileObject(LineDetails[Len-1], LineDetails[1], True)
+                    else:
+                        ImageFile = ImageFileObject(LineDetails[Len-1], LineDetails[1], False)
+                    ImageFileList.append(ImageFile)
+            if ImageFileList:
+                self.ImageFilesDict[File] = ImageFileList
 
 def SearchImageID(ImageFileObject, FileList):
     if FileList == []:
-- 
2.16.2.windows.1

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel