From e6c128f428de3e6cb44549983644fa610082cb52 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Sat, 22 Nov 1997 21:48:26 +0000 Subject: [PATCH] Use fstat if we can; write MAGIC into file last. --- Lib/py_compile.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Lib/py_compile.py b/Lib/py_compile.py index e9e90ff6efa..1adc3a209c6 100644 --- a/Lib/py_compile.py +++ b/Lib/py_compile.py @@ -14,16 +14,22 @@ def wr_long(f, x): def compile(file, cfile = None): import os, marshal, __builtin__ f = open(file) + try: + timestamp = os.fstat(file.fileno()) + except AttributeError: + timestamp = long(os.stat(file)[8]) codestring = f.read() f.close() - timestamp = long(os.stat(file)[8]) codeobject = __builtin__.compile(codestring, file, 'exec') if not cfile: cfile = file + (__debug__ and 'c' or 'o') fc = open(cfile, 'wb') - fc.write(MAGIC) + fc.write('\0\0\0\0') wr_long(fc, timestamp) marshal.dump(codeobject, fc) + fc.flush() + fc.seek(0, 0) + fc.write(MAGIC) fc.close() if os.name == 'mac': import macfs