]> www.vanbest.org Git - sasc-ng.git/commitdiff
add safe clear in struct loader
authorleslie <unknown>
Wed, 25 Feb 2009 09:40:47 +0000 (17:40 +0800)
committerleslie <unknown>
Wed, 25 Feb 2009 09:40:47 +0000 (17:40 +0800)
data.c
data.h
sc.c

diff --git a/data.c b/data.c
index 4b6e3ef59f17ccee0b5f3556ca9861ac06f56132..dcd6ee0d03fd71b2b969616e3cf8c1724ab6d173 100644 (file)
--- a/data.c
+++ b/data.c
@@ -409,6 +409,11 @@ void cStructLoader::Save(void)
     }
 }
 
+void cStructLoader::SafeClear(void)
+{
+  ListLock(true); Clear(); ListUnlock();
+}
+
 // -- cStructLoaderPlain -------------------------------------------------------
 
 cStructLoaderPlain::cStructLoaderPlain(const char *Type, const char *Filename, int Flags)
diff --git a/data.h b/data.h
index 1f6c7d341973707a73999c3ccf25bede6bff7335..e5f7c5cfd9f41c15df71a1bface9133a3cabd33a 100644 (file)
--- a/data.h
+++ b/data.h
@@ -143,6 +143,7 @@ public:
   virtual void Load(bool reload);
   virtual void Save(void);
   void Purge(void);
+  void SafeClear(void);
   void Disable(void) { SL_SETFLAG(SL_DISABLED); }
   };
 
diff --git a/sc.c b/sc.c
index 07dc3939e2bd27ec16aec534e790f891cc96e7ba..4b3d9895c284f79b313a0ce08f3212c4cb1150f0 100644 (file)
--- a/sc.c
+++ b/sc.c
@@ -1022,7 +1022,7 @@ void cSoftCAM::Shutdown(void)
   cStructLoaders::Save(true);
   cSystems::Clean();
   smartcards.Shutdown();
-  keys.Clear();
+  keys.SafeClear();
 }
 
 char *cSoftCAM::CurrKeyStr(int CardNum, int num)