Used IterableUserDict to replace internal dict as sdict's super class, because pickle...
authorjwang36 <jwang36@7335b38e-4728-0410-8992-fb3ffe349368>
Mon, 25 Feb 2008 03:10:54 +0000 (03:10 +0000)
committerjwang36 <jwang36@7335b38e-4728-0410-8992-fb3ffe349368>
Mon, 25 Feb 2008 03:10:54 +0000 (03:10 +0000)
git-svn-id: https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools@1017 7335b38e-4728-0410-8992-fb3ffe349368

Source/Python/Common/Misc.py

index 583faa1..44467f9 100755 (executable)
@@ -22,6 +22,7 @@ import threading
 import time\r
 import re\r
 import cPickle\r
+from UserDict import IterableUserDict\r
 \r
 from Common import EdkLogger as EdkLogger\r
 from BuildToolError import *\r
@@ -225,7 +226,7 @@ def DataRestore(File):
         Fd = open(File, 'rb')\r
         Data = cPickle.load(Fd)\r
     except Exception, e:\r
-        EdkLogger.verbose("Failed to open [%s]" % File)\r
+        EdkLogger.verbose("Failed to load [%s]\n\t%s" % (File, str(e)))\r
         Data = None\r
     finally:\r
         if Fd != None:\r
@@ -384,21 +385,22 @@ class Progressor:
 #  accessed in the order they are added into the dict. It guarantees the order\r
 #  by making use of an internal list to keep a copy of keys.\r
 #\r
-class sdict(dict):\r
+class sdict(IterableUserDict):\r
     ## Constructor\r
     def __init__(self):\r
+        IterableUserDict.__init__(self)\r
         self._key_list = []\r
 \r
     ## [] operator\r
     def __setitem__(self, key, value):\r
         if key not in self._key_list:\r
             self._key_list.append(key)\r
-        dict.__setitem__(self, key, value)\r
+        IterableUserDict.__setitem__(self, key, value)\r
 \r
     ## del operator\r
     def __delitem__(self, key):\r
         self._key_list.remove(key)\r
-        dict.__delitem__(self, key)\r
+        IterableUserDict.__delitem__(self, key)\r
 \r
     ## used in "for k in dict" loop to ensure the correct order\r
     def __iter__(self):\r
@@ -418,7 +420,7 @@ class sdict(dict):
     ## Empty the dict\r
     def clear(self):\r
         self._key_list = []\r
-        dict.clear(self)\r
+        IterableUserDict.clear(self)\r
 \r
     ## Return a copy of keys\r
     def keys(self):\r