diff options
Diffstat (limited to 'common')
-rw-r--r-- | common/util.cpp | 9 | ||||
-rw-r--r-- | common/util.h | 3 |
2 files changed, 8 insertions, 4 deletions
diff --git a/common/util.cpp b/common/util.cpp index 548fcb6a41..8920453bd7 100644 --- a/common/util.cpp +++ b/common/util.cpp @@ -166,7 +166,10 @@ uint RandomSource::getRandomNumberRng(uint min, uint max) { return getRandomNumber(max - min) + min; } -StackLock::StackLock(OSystem::MutexRef mutex) : _mutex(mutex) { +StackLock::StackLock(OSystem::MutexRef mutex, OSystem *syst) + : _mutex(mutex), _syst(syst) { + if (syst == 0) + _syst = g_system; lock(); } @@ -175,12 +178,12 @@ StackLock::~StackLock() { } void StackLock::lock() { - assert(g_system); + assert(_syst); g_system->lock_mutex(_mutex); } void StackLock::unlock() { - assert(g_system); + assert(_syst); g_system->unlock_mutex(_mutex); } diff --git a/common/util.h b/common/util.h index 8c0409e0ef..3a77445567 100644 --- a/common/util.h +++ b/common/util.h @@ -80,10 +80,11 @@ public: */ class StackLock { OSystem::MutexRef _mutex; + OSystem *_syst; void lock(); void unlock(); public: - StackLock(OSystem::MutexRef mutex); + StackLock(OSystem::MutexRef mutex, OSystem *syst = 0); ~StackLock(); }; |