1.1 --- a/extensions/sqlite/driver/SqDriver.cpp Fri Aug 23 00:18:12 2013 -0700
1.2 +++ b/extensions/sqlite/driver/SqDriver.cpp Fri Aug 23 00:18:13 2013 -0700
1.3 @@ -1,5 +1,5 @@
1.4 /**
1.5 - * vim: set ts=4 :
1.6 + * vim: set ts=4 sw=4 tw=99 noet :
1.7 * =============================================================================
1.8 * SourceMod SQLite Extension
1.9 * Copyright (C) 2004-2008 AlliedModders LLC. All rights reserved.
1.10 @@ -66,24 +66,16 @@
1.11 SqDriver::SqDriver()
1.12 {
1.13 m_Handle = BAD_HANDLE;
1.14 - m_pOpenLock = NULL;
1.15 m_bThreadSafe = false;
1.16 }
1.17
1.18 void SqDriver::Initialize()
1.19 {
1.20 - m_pOpenLock = threader->MakeMutex();
1.21 -
1.22 InitializeThreadSafety();
1.23 }
1.24
1.25 void SqDriver::Shutdown()
1.26 {
1.27 - if (m_pOpenLock)
1.28 - {
1.29 - m_pOpenLock->DestroyThis();
1.30 - }
1.31 -
1.32 if (m_bThreadSafe)
1.33 {
1.34 sqlite3_enable_shared_cache(0);
1.35 @@ -158,8 +150,7 @@
1.36
1.37 IDatabase *SqDriver::Connect(const DatabaseInfo *info, bool persistent, char *error, size_t maxlength)
1.38 {
1.39 - /* We wrap most of the open process in a mutex just to be safe */
1.40 - m_pOpenLock->Lock();
1.41 + ke::AutoLock lock(&m_OpenLock);
1.42
1.43 /* Format our path */
1.44 char path[PLATFORM_MAX_PATH];
1.45 @@ -189,7 +180,6 @@
1.46 if (!libsys->CreateFolder(fullpath))
1.47 {
1.48 strncopy(error, "Could not create or open \"data\" folder\"", maxlength);
1.49 - m_pOpenLock->Unlock();
1.50 return NULL;
1.51 }
1.52 }
1.53 @@ -237,7 +227,6 @@
1.54 if ((*iter).path.compare(fullpath) == 0)
1.55 {
1.56 (*iter).db->IncReferenceCount();
1.57 - m_pOpenLock->Unlock();
1.58 return (*iter).db;
1.59 }
1.60 }
1.61 @@ -250,7 +239,6 @@
1.62 {
1.63 strncopy(error, sqlite3_errmsg(sql), maxlength);
1.64 sqlite3_close(sql);
1.65 - m_pOpenLock->Unlock();
1.66 return NULL;
1.67 }
1.68
1.69 @@ -266,13 +254,13 @@
1.70 m_Cache.push_back(pinfo);
1.71 }
1.72
1.73 - m_pOpenLock->Unlock();
1.74 -
1.75 return pdb;
1.76 }
1.77
1.78 void SqDriver::RemovePersistent(IDatabase *pdb)
1.79 {
1.80 + ke::AutoLock lock(&m_OpenLock);
1.81 +
1.82 List<SqDbInfo>::iterator iter;
1.83 for (iter = m_Cache.begin(); iter != m_Cache.end(); iter++)
1.84 {