BaseTools: Customize deepcopy function.
https://bugzilla.tianocore.org/show_bug.cgi?id=1288 This patch is one of build tool performance improvement series patches. This patch is going to customize the deepcopy function for SkuClass, PcdClassObject and python dictionary. python deepcopy copy everything of a object, but for our current usage we just need to copy the data we care about recursively. By implementing __deepcopy__ for SkuClass, PcdClassObject, we can customize deepcopy function for them. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: BobCF <bob.c.feng@intel.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Jaben Carsey <jaben.carsey@intel.com> Reviewed-by: Jaben Carsey <jaben.carsey@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
This commit is contained in:
@ -17,7 +17,7 @@ from __future__ import absolute_import
|
||||
from Common.GlobalData import *
|
||||
from CommonDataClass.Exceptions import BadExpression
|
||||
from CommonDataClass.Exceptions import WrnExpression
|
||||
from .Misc import GuidStringToGuidStructureString, ParseFieldValue
|
||||
from .Misc import GuidStringToGuidStructureString, ParseFieldValue,CopyDict
|
||||
import Common.EdkLogger as EdkLogger
|
||||
import copy
|
||||
from Common.DataType import *
|
||||
@ -355,7 +355,7 @@ class ValueExpression(BaseExpression):
|
||||
#
|
||||
# The symbol table including PCD and macro mapping
|
||||
#
|
||||
self._Symb = copy.deepcopy(SymbolTable)
|
||||
self._Symb = CopyDict(SymbolTable)
|
||||
self._Symb.update(self.LogicalOperators)
|
||||
self._Idx = 0
|
||||
self._Len = len(self._Expr)
|
||||
|
Reference in New Issue
Block a user