diff options
Diffstat (limited to 'BaseTools/Source/Python/Common/Misc.py')
-rw-r--r-- | BaseTools/Source/Python/Common/Misc.py | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/BaseTools/Source/Python/Common/Misc.py b/BaseTools/Source/Python/Common/Misc.py index b91f06b19e..1d62a8b56b 100644 --- a/BaseTools/Source/Python/Common/Misc.py +++ b/BaseTools/Source/Python/Common/Misc.py @@ -459,8 +459,14 @@ def SaveFileOnChange(File, Content, IsBinaryFile=True): if os.path.exists(File):
try:
- if Content == open(File, "rb").read():
- return False
+ if isinstance(Content, bytes):
+ with open(File, "rb") as f:
+ if Content == f.read():
+ return False
+ else:
+ with open(File, "r") as f:
+ if Content == f.read():
+ return False
except:
EdkLogger.error(None, FILE_OPEN_FAILURE, ExtraData=File)
@@ -480,13 +486,19 @@ def SaveFileOnChange(File, Content, IsBinaryFile=True): if not SaveFileToDisk(File, Content):
EdkLogger.error(None, FILE_CREATE_FAILURE, ExtraData=File)
except:
- Fd = open(File, "wb")
- Fd.write(Content)
- Fd.close()
+ if isinstance(Content, bytes):
+ with open(File, "wb") as Fd:
+ Fd.write(Content)
+ else:
+ with open(File, "w") as Fd:
+ Fd.write(Content)
else:
- Fd = open(File, "wb")
- Fd.write(Content)
- Fd.close()
+ if isinstance(Content, bytes):
+ with open(File, "wb") as Fd:
+ Fd.write(Content)
+ else:
+ with open(File, "w") as Fd:
+ Fd.write(Content)
except IOError as X:
EdkLogger.error(None, FILE_CREATE_FAILURE, ExtraData='IOError %s' % X)
|