From cf42fdca7fa75357acaba0d6a8a8c2ddb9682817 Mon Sep 17 00:00:00 2001 From: leslie Date: Wed, 25 Feb 2009 17:40:47 +0800 Subject: [PATCH] add safe clear in struct loader --- data.c | 5 +++++ data.h | 1 + sc.c | 2 +- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/data.c b/data.c index 4b6e3ef..dcd6ee0 100644 --- 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 1f6c7d3..e5f7c5c 100644 --- 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 07dc393..4b3d989 100644 --- 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) -- 2.39.5