From nobody Tue Feb 10 11:36:09 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) smtp.mailfrom=edk2-devel-bounces@lists.01.org Return-Path: Received: from ml01.01.org (ml01.01.org [198.145.21.10]) by mx.zohomail.com with SMTPS id 1524239595488323.54380064016345; Fri, 20 Apr 2018 08:53:15 -0700 (PDT) Received: from [127.0.0.1] (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id 0DB542279CEF1; Fri, 20 Apr 2018 08:52:02 -0700 (PDT) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id A38BA226EA5AA for ; Fri, 20 Apr 2018 08:51:56 -0700 (PDT) Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 20 Apr 2018 08:51:55 -0700 Received: from jcarsey-desk1.amr.corp.intel.com ([10.7.159.144]) by orsmga003.jf.intel.com with ESMTP; 20 Apr 2018 08:51:53 -0700 X-Original-To: edk2-devel@lists.01.org Received-SPF: none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) client-ip=198.145.21.10; envelope-from=edk2-devel-bounces@lists.01.org; helo=ml01.01.org; Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=134.134.136.20; helo=mga02.intel.com; envelope-from=jaben.carsey@intel.com; receiver=edk2-devel@lists.01.org X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.49,302,1520924400"; d="scan'208";a="44811564" From: Jaben Carsey To: edk2-devel@lists.01.org Date: Fri, 20 Apr 2018 08:51:31 -0700 Message-Id: <713dcb2a513561fe7d62fcfd9df09cde1712ff91.1524239027.git.jaben.carsey@intel.com> X-Mailer: git-send-email 2.16.2.windows.1 In-Reply-To: References: In-Reply-To: References: Subject: [edk2] [PATCH v1 11/27] BaseTools: Workspace/MetaFileParser - refactor dicts X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Liming Gao MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Errors-To: edk2-devel-bounces@lists.01.org Sender: "edk2-devel" X-ZohoMail: RSF_4 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" make defaultdict to avoid initialize inner items to empty the dict, call clear instead of making a new object Cc: Liming Gao Cc: Yonghong Zhu Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Jaben Carsey --- BaseTools/Source/Python/Workspace/MetaFileParser.py | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/BaseTools/Source/Python/Workspace/MetaFileParser.py b/BaseTool= s/Source/Python/Workspace/MetaFileParser.py index 550359f9abb2..99f6fcd0dc30 100644 --- a/BaseTools/Source/Python/Workspace/MetaFileParser.py +++ b/BaseTools/Source/Python/Workspace/MetaFileParser.py @@ -31,7 +31,7 @@ from Common.Misc import GuidStructureStringToGuidString, = CheckPcdDatum, PathClas from Common.Expression import * from CommonDataClass.Exceptions import * from Common.LongFilePathSupport import OpenLongFilePath as open - +from collections import defaultdict from MetaFileTable import MetaFileStorage from MetaFileCommentParser import CheckInfComment =20 @@ -163,7 +163,7 @@ class MetaFileParser(object): self._FileDir =3D self.MetaFile.Dir self._Defines =3D {} self._FileLocalMacros =3D {} - self._SectionsMacroDict =3D {} + self._SectionsMacroDict =3D defaultdict(dict) =20 # for recursive parsing self._Owner =3D [Owner] @@ -421,17 +421,16 @@ class MetaFileParser(object): def _ConstructSectionMacroDict(self, Name, Value): ScopeKey =3D [(Scope[0], Scope[1],Scope[2]) for Scope in self._Sco= pe] ScopeKey =3D tuple(ScopeKey) - SectionDictKey =3D self._SectionType, ScopeKey # # DecParser SectionType is a list, will contain more than one item= only in Pcd Section # As Pcd section macro usage is not alllowed, so here it is safe # if type(self) =3D=3D DecParser: SectionDictKey =3D self._SectionType[0], ScopeKey - if SectionDictKey not in self._SectionsMacroDict: - self._SectionsMacroDict[SectionDictKey] =3D {} - SectionLocalMacros =3D self._SectionsMacroDict[SectionDictKey] - SectionLocalMacros[Name] =3D Value + else: + SectionDictKey =3D self._SectionType, ScopeKey + + self._SectionsMacroDict[SectionDictKey][Name] =3D Value =20 ## Get section Macros that are applicable to current line, which may c= ome from other sections=20 ## that share the same name while scope is wider @@ -936,7 +935,7 @@ class DscParser(MetaFileParser): self._SubsectionType =3D MODEL_UNKNOWN self._SubsectionName =3D '' self._Owner[-1] =3D -1 - OwnerId =3D {} + OwnerId.clear() continue # subsection header elif Line[0] =3D=3D TAB_OPTION_START and Line[-1] =3D=3D TAB_O= PTION_END: --=20 2.16.2.windows.1 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel