[Scummvm-git-logs] scummvm master -> cf068bcc08d68c9c0621266a85090062f979e9ee

sev- sev at scummvm.org
Fri Aug 21 07:39:04 UTC 2020


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
cf068bcc08 ALL: Remove direct use of OSystem::createMutex()


Commit: cf068bcc08d68c9c0621266a85090062f979e9ee
    https://github.com/scummvm/scummvm/commit/cf068bcc08d68c9c0621266a85090062f979e9ee
Author: Cameron Cawley (ccawley2011 at gmail.com)
Date: 2020-08-21T09:39:00+02:00

Commit Message:
ALL: Remove direct use of OSystem::createMutex()

Changed paths:
    backends/graphics/surfacesdl/surfacesdl-graphics.cpp
    backends/graphics/surfacesdl/surfacesdl-graphics.h
    backends/platform/android/android.cpp
    backends/platform/android/android.h
    backends/platform/android/events.cpp
    common/mutex.cpp
    common/mutex.h
    common/str.cpp
    engines/lure/sound.cpp
    engines/lure/sound.h
    engines/testbed/misc.cpp
    engines/testbed/misc.h
    engines/tony/gfxcore.h
    engines/tony/inventory.cpp
    engines/tony/inventory.h
    engines/tony/loc.cpp
    engines/tony/loc.h


diff --git a/backends/graphics/surfacesdl/surfacesdl-graphics.cpp b/backends/graphics/surfacesdl/surfacesdl-graphics.cpp
index d3982e2703..61e031e605 100644
--- a/backends/graphics/surfacesdl/surfacesdl-graphics.cpp
+++ b/backends/graphics/surfacesdl/surfacesdl-graphics.cpp
@@ -162,7 +162,6 @@ SurfaceSdlGraphicsManager::SurfaceSdlGraphicsManager(SdlEventSource *sdlEventSou
 	_currentShakeXOffset(0), _currentShakeYOffset(0),
 	_paletteDirtyStart(0), _paletteDirtyEnd(0),
 	_screenIsLocked(false),
-	_graphicsMutex(0),
 	_displayDisabled(false),
 #ifdef USE_SDL_DEBUG_FOCUSRECT
 	_enableFocusRectDebugCode(false), _enableFocusRect(false), _focusRect(),
@@ -175,8 +174,6 @@ SurfaceSdlGraphicsManager::SurfaceSdlGraphicsManager(SdlEventSource *sdlEventSou
 
 	_mouseBackup.x = _mouseBackup.y = _mouseBackup.w = _mouseBackup.h = 0;
 
-	_graphicsMutex = g_system->createMutex();
-
 #ifdef USE_SDL_DEBUG_FOCUSRECT
 	if (ConfMan.hasKey("use_sdl_debug_focusrect"))
 		_enableFocusRectDebugCode = ConfMan.getBool("use_sdl_debug_focusrect");
@@ -214,7 +211,6 @@ SurfaceSdlGraphicsManager::~SurfaceSdlGraphicsManager() {
 	if (_mouseSurface) {
 		SDL_FreeSurface(_mouseSurface);
 	}
-	g_system->deleteMutex(_graphicsMutex);
 	free(_currentPalette);
 	free(_cursorPalette);
 	delete[] _mouseData;
@@ -1518,7 +1514,7 @@ Graphics::Surface *SurfaceSdlGraphicsManager::lockScreen() {
 	assert(_transactionMode == kTransactionNone);
 
 	// Lock the graphics mutex
-	g_system->lockMutex(_graphicsMutex);
+	_graphicsMutex.lock();
 
 	// paranoia check
 	assert(!_screenIsLocked);
@@ -1547,7 +1543,7 @@ void SurfaceSdlGraphicsManager::unlockScreen() {
 	_forceRedraw = true;
 
 	// Finally unlock the graphics mutex
-	g_system->unlockMutex(_graphicsMutex);
+	_graphicsMutex.unlock();
 }
 
 void SurfaceSdlGraphicsManager::fillScreen(uint32 col) {
diff --git a/backends/graphics/surfacesdl/surfacesdl-graphics.h b/backends/graphics/surfacesdl/surfacesdl-graphics.h
index e887c4b34a..0bd98dc6dd 100644
--- a/backends/graphics/surfacesdl/surfacesdl-graphics.h
+++ b/backends/graphics/surfacesdl/surfacesdl-graphics.h
@@ -28,7 +28,7 @@
 #include "graphics/pixelformat.h"
 #include "graphics/scaler.h"
 #include "common/events.h"
-#include "common/system.h"
+#include "common/mutex.h"
 
 #include "backends/events/sdl/sdl-events.h"
 
@@ -397,7 +397,7 @@ protected:
 	 * Mutex which prevents multiple threads from interfering with each other
 	 * when accessing the screen.
 	 */
-	OSystem::MutexRef _graphicsMutex;
+	Common::Mutex _graphicsMutex;
 
 #ifdef USE_SDL_DEBUG_FOCUSRECT
 	bool _enableFocusRectDebugCode;
diff --git a/backends/platform/android/android.cpp b/backends/platform/android/android.cpp
index 5ec86058a7..786fdd7683 100644
--- a/backends/platform/android/android.cpp
+++ b/backends/platform/android/android.cpp
@@ -140,7 +140,7 @@ OSystem_Android::~OSystem_Android() {
 	delete _timerManager;
 	_timerManager = 0;
 
-	deleteMutex(_event_queue_lock);
+	delete _event_queue_lock;
 
 	delete _savefileManager;
 	_savefileManager = 0;
@@ -347,7 +347,7 @@ void OSystem_Android::initBackend() {
 	_mutexManager = new PthreadMutexManager();
 	_timerManager = new DefaultTimerManager();
 
-	_event_queue_lock = createMutex();
+	_event_queue_lock = new Common::Mutex();
 
 	gettimeofday(&_startTime, 0);
 
diff --git a/backends/platform/android/android.h b/backends/platform/android/android.h
index 90fedfb9f4..da31674576 100644
--- a/backends/platform/android/android.h
+++ b/backends/platform/android/android.h
@@ -28,6 +28,7 @@
 #include "backends/platform/android/portdefs.h"
 #include "common/fs.h"
 #include "common/archive.h"
+#include "common/mutex.h"
 #include "audio/mixer_intern.h"
 #include "backends/modular-backend.h"
 #include "backends/plugins/posix/posix-provider.h"
@@ -100,7 +101,7 @@ private:
 	Common::Queue<Common::Event> _event_queue;
 	Common::Event _queuedEvent;
 	uint32 _queuedEventTime;
-	MutexRef _event_queue_lock;
+	Common::Mutex *_event_queue_lock;
 
 	Common::Point _touch_pt_down, _touch_pt_scroll, _touch_pt_dt;
 	int _eventScaleX;
diff --git a/backends/platform/android/events.cpp b/backends/platform/android/events.cpp
index 3a28c25715..5841a4bcd0 100644
--- a/backends/platform/android/events.cpp
+++ b/backends/platform/android/events.cpp
@@ -277,7 +277,7 @@ void OSystem_Android::pushEvent(int type, int arg1, int arg2, int arg3,
 				up = Common::EVENT_LBUTTONUP;
 			}
 
-			lockMutex(_event_queue_lock);
+			_event_queue_lock->lock();
 
 			if (_queuedEventTime)
 				_event_queue.push(_queuedEvent);
@@ -292,7 +292,7 @@ void OSystem_Android::pushEvent(int type, int arg1, int arg2, int arg3,
 			_queuedEvent = e;
 			_queuedEventTime = getMillis() + kQueuedInputEventDelay;
 
-			unlockMutex(_event_queue_lock);
+			_event_queue_lock->unlock();
 		}
 
 		return;
@@ -341,11 +341,11 @@ void OSystem_Android::pushEvent(int type, int arg1, int arg2, int arg3,
 				return;
 			}
 
-			lockMutex(_event_queue_lock);
+			_event_queue_lock->lock();
 			_event_queue.push(e);
 			e.type = dptype;
 			_event_queue.push(e);
-			unlockMutex(_event_queue_lock);
+			_event_queue_lock->unlock();
 		}
 
 		return;
@@ -381,7 +381,7 @@ void OSystem_Android::pushEvent(int type, int arg1, int arg2, int arg3,
 
 				e.mouse = dynamic_cast<AndroidGraphicsManager *>(_graphicsManager)->getMousePosition();
 
-				lockMutex(_event_queue_lock);
+				_event_queue_lock->lock();
 
 				if (_queuedEventTime)
 					_event_queue.push(_queuedEvent);
@@ -392,7 +392,7 @@ void OSystem_Android::pushEvent(int type, int arg1, int arg2, int arg3,
 				_queuedEvent = e;
 				_queuedEventTime = getMillis() + kQueuedInputEventDelay;
 
-				unlockMutex(_event_queue_lock);
+				_event_queue_lock->unlock();
 				return;
 
 			default:
@@ -643,21 +643,21 @@ bool OSystem_Android::pollEvent(Common::Event &event) {
 		}
 	}
 
-	lockMutex(_event_queue_lock);
+	_event_queue_lock->lock();
 
 	if (_queuedEventTime && (getMillis() > _queuedEventTime)) {
 		event = _queuedEvent;
 		_queuedEventTime = 0;
-		// unlockMutex(_event_queue_lock);
+		// _event_queue_lock->unlock();
 		// return true;
 	} else if (_event_queue.empty()) {
-		unlockMutex(_event_queue_lock);
+		_event_queue_lock->unlock();
 		return false;
 	} else {
 		event = _event_queue.pop();
 	}
 
-	unlockMutex(_event_queue_lock);
+	_event_queue_lock->unlock();
 
 	if (Common::isMouseEvent(event)) {
 		if (_graphicsManager)
@@ -668,9 +668,9 @@ bool OSystem_Android::pollEvent(Common::Event &event) {
 }
 
 void OSystem_Android::pushEvent(const Common::Event &event) {
-	lockMutex(_event_queue_lock);
+	_event_queue_lock->lock();
 	_event_queue.push(event);
-	unlockMutex(_event_queue_lock);
+	_event_queue_lock->unlock();
 }
 
 #endif
diff --git a/common/mutex.cpp b/common/mutex.cpp
index e7a0bbfe76..cc5af7b4a7 100644
--- a/common/mutex.cpp
+++ b/common/mutex.cpp
@@ -47,7 +47,7 @@ void Mutex::unlock() {
 #pragma mark -
 
 
-StackLock::StackLock(MutexRef mutex, const char *mutexName)
+StackLock::StackLock(OSystem::MutexRef mutex, const char *mutexName)
 	: _mutex(mutex), _mutexName(mutexName) {
 	lock();
 }
diff --git a/common/mutex.h b/common/mutex.h
index f965a63e0d..1b52bb40dd 100644
--- a/common/mutex.h
+++ b/common/mutex.h
@@ -30,23 +30,17 @@ namespace Common {
 
 class Mutex;
 
-/**
- * An pseudo-opaque mutex type. See OSystem::createMutex etc. for more details.
- */
-typedef OSystem::MutexRef MutexRef;
-
-
 /**
  * Auxillary class to (un)lock a mutex on the stack.
  */
 class StackLock {
-	MutexRef _mutex;
+	OSystem::MutexRef _mutex;
 	const char *_mutexName;
 
 	void lock();
 	void unlock();
 public:
-	explicit StackLock(MutexRef mutex, const char *mutexName = nullptr);
+	explicit StackLock(OSystem::MutexRef mutex, const char *mutexName = nullptr);
 	explicit StackLock(const Mutex &mutex, const char *mutexName = nullptr);
 	~StackLock();
 };
@@ -58,7 +52,7 @@ public:
 class Mutex {
 	friend class StackLock;
 
-	MutexRef _mutex;
+	OSystem::MutexRef _mutex;
 
 public:
 	Mutex();
diff --git a/common/str.cpp b/common/str.cpp
index 535cf43876..0ec93b61d2 100644
--- a/common/str.cpp
+++ b/common/str.cpp
@@ -30,7 +30,7 @@
 namespace Common {
 
 MemoryPool *g_refCountPool = nullptr; // FIXME: This is never freed right now
-MutexRef g_refCountPoolMutex = nullptr;
+Mutex *g_refCountPoolMutex = nullptr;
 
 void lockMemoryPoolMutex() {
 	// The Mutex class can only be used once g_system is set and initialized,
@@ -40,18 +40,18 @@ void lockMemoryPoolMutex() {
 	if (!g_system || !g_system->backendInitialized())
 		return;
 	if (!g_refCountPoolMutex)
-		g_refCountPoolMutex = g_system->createMutex();
-	g_system->lockMutex(g_refCountPoolMutex);
+		g_refCountPoolMutex = new Mutex();
+	g_refCountPoolMutex->lock();
 }
 
 void unlockMemoryPoolMutex() {
 	if (g_refCountPoolMutex)
-		g_system->unlockMutex(g_refCountPoolMutex);
+		g_refCountPoolMutex->unlock();
 }
 
 void String::releaseMemoryPoolMutex() {
 	if (g_refCountPoolMutex){
-		g_system->deleteMutex(g_refCountPoolMutex);
+		delete g_refCountPoolMutex;
 		g_refCountPoolMutex = nullptr;
 	}
 }
diff --git a/engines/lure/sound.cpp b/engines/lure/sound.cpp
index 5acd6d81a0..4d0dd129c9 100644
--- a/engines/lure/sound.cpp
+++ b/engines/lure/sound.cpp
@@ -41,7 +41,6 @@ namespace Lure {
 
 SoundManager::SoundManager() {
 	Disk &disk = Disk::getReference();
-	_soundMutex = g_system->createMutex();
 
 	int index;
 	_descs = disk.getEntry(SOUND_DESC_RESOURCE_ID);
@@ -86,9 +85,9 @@ SoundManager::~SoundManager() {
 	removeSounds();
 	_activeSounds.clear();
 
-	g_system->lockMutex(_soundMutex);
+	_soundMutex.lock();
 	_playingSounds.clear();
-	g_system->unlockMutex(_soundMutex);
+	_soundMutex.unlock();
 
 	delete _descs;
 	delete _soundData;
@@ -98,8 +97,6 @@ SoundManager::~SoundManager() {
 		delete _driver;
 		_driver = NULL;
 	}
-
-	g_system->deleteMutex(_soundMutex);
 }
 
 void SoundManager::saveToStream(Common::WriteStream *stream) {
@@ -300,7 +297,7 @@ void SoundManager::syncSounds() {
 	_musicVolume = mute ? 0 : MIN(255, ConfMan.getInt("music_volume"));
 	_sfxVolume = mute ? 0 : MIN(255, ConfMan.getInt("sfx_volume"));
 
-	g_system->lockMutex(_soundMutex);
+	_soundMutex.lock();
 	MusicListIterator i;
 	for (i = _playingSounds.begin(); i != _playingSounds.end(); ++i) {
 		if ((*i)->isMusic())
@@ -308,7 +305,7 @@ void SoundManager::syncSounds() {
 		else
 			(*i)->setVolume(_sfxVolume);
 	}
-	g_system->unlockMutex(_soundMutex);
+	_soundMutex.unlock();
 }
 
 SoundDescResource *SoundManager::findSound(uint8 soundNumber) {
@@ -393,7 +390,7 @@ void SoundManager::fadeOut() {
 	{
 		inProgress = false;
 
-		g_system->lockMutex(_soundMutex);
+		_soundMutex.lock();
 		MusicListIterator i;
 		for (i = _playingSounds.begin(); i != _playingSounds.end(); ++i) {
 			MidiMusic &music = **i;
@@ -403,7 +400,7 @@ void SoundManager::fadeOut() {
 			}
 		}
 
-		g_system->unlockMutex(_soundMutex);
+		_soundMutex.unlock();
 		g_system->delayMillis(10);
 	}
 
@@ -449,11 +446,11 @@ void SoundManager::musicInterface_Play(uint8 soundNumber, uint8 channelNumber, u
 		dataSize = nextDataOfs - dataOfs;
 	}
 
-	g_system->lockMutex(_soundMutex);
+	_soundMutex.lock();
 	MidiMusic *sound = new MidiMusic(_driver, _channelsInner, channelNumber, soundNum,
 		isMusic, numChannels, soundStart, dataSize);
 	_playingSounds.push_back(MusicList::value_type(sound));
-	g_system->unlockMutex(_soundMutex);
+	_soundMutex.unlock();
 }
 
 // musicInterface_Stop
@@ -464,7 +461,7 @@ void SoundManager::musicInterface_Stop(uint8 soundNumber) {
 	musicInterface_TidySounds();
 	uint8 soundNum = soundNumber & 0x7f;
 
-	g_system->lockMutex(_soundMutex);
+	_soundMutex.lock();
 	MusicListIterator i;
 	for (i = _playingSounds.begin(); i != _playingSounds.end(); ++i) {
 		if ((*i)->soundNumber() == soundNum) {
@@ -472,7 +469,7 @@ void SoundManager::musicInterface_Stop(uint8 soundNumber) {
 			break;
 		}
 	}
-	g_system->unlockMutex(_soundMutex);
+	_soundMutex.unlock();
 }
 
 // musicInterface_CheckPlaying
@@ -484,7 +481,7 @@ bool SoundManager::musicInterface_CheckPlaying(uint8 soundNumber) {
 	uint8 soundNum = soundNumber & 0x7f;
 	bool result = false;
 
-	g_system->lockMutex(_soundMutex);
+	_soundMutex.lock();
 	MusicListIterator i;
 	for (i = _playingSounds.begin(); i != _playingSounds.end(); ++i) {
 		if ((*i)->soundNumber() == soundNum) {
@@ -492,7 +489,7 @@ bool SoundManager::musicInterface_CheckPlaying(uint8 soundNumber) {
 			break;
 		}
 	}
-	g_system->unlockMutex(_soundMutex);
+	_soundMutex.unlock();
 
 	return result;
 }
@@ -505,14 +502,14 @@ void SoundManager::musicInterface_SetVolume(uint8 channelNum, uint8 volume) {
 		channelNum, volume);
 	musicInterface_TidySounds();
 
-	g_system->lockMutex(_soundMutex);
+	_soundMutex.lock();
 	MusicListIterator i;
 	for (i = _playingSounds.begin(); i != _playingSounds.end(); ++i) {
 		MidiMusic &music = **i;
 		if (music.channelNumber() == channelNum)
 			music.setVolume(volume);
 	}
-	g_system->unlockMutex(_soundMutex);
+	_soundMutex.unlock();
 }
 
 // musicInterface_KillAll
@@ -522,7 +519,7 @@ void SoundManager::musicInterface_KillAll() {
 	debugC(ERROR_INTERMEDIATE, kLureDebugSounds, "musicInterface_KillAll");
 	musicInterface_TidySounds();
 
-	g_system->lockMutex(_soundMutex);
+	_soundMutex.lock();
 	MusicListIterator i;
 	for (i = _playingSounds.begin(); i != _playingSounds.end(); ++i) {
 		(*i)->stopMusic();
@@ -530,7 +527,7 @@ void SoundManager::musicInterface_KillAll() {
 
 	_playingSounds.clear();
 	_activeSounds.clear();
-	g_system->unlockMutex(_soundMutex);
+	_soundMutex.unlock();
 }
 
 // musicInterface_ContinuePlaying
@@ -554,7 +551,7 @@ void SoundManager::musicInterface_TrashReverb() {
 void SoundManager::musicInterface_TidySounds() {
 	debugC(ERROR_DETAILED, kLureDebugSounds, "musicInterface_TidySounds");
 
-	g_system->lockMutex(_soundMutex);
+	_soundMutex.lock();
 	MusicListIterator i = _playingSounds.begin();
 	while (i != _playingSounds.end()) {
 		if (!(*i)->isPlaying())
@@ -562,7 +559,7 @@ void SoundManager::musicInterface_TidySounds() {
 		else
 			++i;
 	}
-	g_system->unlockMutex(_soundMutex);
+	_soundMutex.unlock();
 }
 
 void SoundManager::onTimer(void *data) {
@@ -574,7 +571,7 @@ void SoundManager::doTimer() {
 	if (_paused)
 		return;
 
-	g_system->lockMutex(_soundMutex);
+	_soundMutex.lock();
 
 	MusicListIterator i;
 	for (i = _playingSounds.begin(); i != _playingSounds.end(); ++i) {
@@ -583,7 +580,7 @@ void SoundManager::doTimer() {
 			music.onTimer();
 	}
 
-	g_system->unlockMutex(_soundMutex);
+	_soundMutex.unlock();
 }
 
 /*------------------------------------------------------------------------*/
diff --git a/engines/lure/sound.h b/engines/lure/sound.h
index 31e98273d2..b5cd4e0af9 100644
--- a/engines/lure/sound.h
+++ b/engines/lure/sound.h
@@ -112,7 +112,7 @@ private:
 	bool _isPlaying;
 	bool _nativeMT32;
 	bool _isRoland;
-	Common::MutexRef _soundMutex;
+	Common::Mutex _soundMutex;
 	bool _paused;
 
 	uint _musicVolume;
diff --git a/engines/testbed/misc.cpp b/engines/testbed/misc.cpp
index 30cce8cee0..d0caac0f5c 100644
--- a/engines/testbed/misc.cpp
+++ b/engines/testbed/misc.cpp
@@ -39,7 +39,7 @@ void MiscTests::criticalSection(void *arg) {
 	SharedVars &sv = *((SharedVars *)arg);
 
 	Testsuite::logDetailedPrintf("Before critical section: %d %d\n", sv.first, sv.second);
-	g_system->lockMutex(sv.mutex);
+	sv.mutex->lock();
 
 	// In any case, the two vars must be equal at entry, if mutex works fine.
 	// verify this here.
@@ -58,7 +58,7 @@ void MiscTests::criticalSection(void *arg) {
 
 	sv.second *= sv.first;
 	Testsuite::logDetailedPrintf("After critical section: %d %d\n", sv.first, sv.second);
-	g_system->unlockMutex(sv.mutex);
+	sv.mutex->unlock();
 
 	g_system->getTimerManager()->removeTimerProc(criticalSection);
 }
@@ -132,17 +132,17 @@ TestExitStatus MiscTests::testMutexes() {
 		Testsuite::writeOnScreen("Installing mutex", Common::Point(0, 100));
 	}
 
-	SharedVars sv = {1, 1, true, g_system->createMutex()};
+	SharedVars sv = {1, 1, true, new Common::Mutex()};
 
 	if (g_system->getTimerManager()->installTimerProc(criticalSection, 100000, &sv, "testbedMutex")) {
 		g_system->delayMillis(150);
 	}
 
-	g_system->lockMutex(sv.mutex);
+	sv.mutex->lock();
 	sv.first++;
 	g_system->delayMillis(1000);
 	sv.second *= sv.first;
-	g_system->unlockMutex(sv.mutex);
+	sv.mutex->unlock();
 
 	// wait till timed process exits
 	if (ConfParams.isSessionInteractive()) {
@@ -151,7 +151,7 @@ TestExitStatus MiscTests::testMutexes() {
 	g_system->delayMillis(3000);
 
 	Testsuite::logDetailedPrintf("Final Value: %d %d\n", sv.first, sv.second);
-	g_system->deleteMutex(sv.mutex);
+	delete sv.mutex;
 
 	if (sv.resultSoFar && 6 == sv.second) {
 		return kTestPassed;
diff --git a/engines/testbed/misc.h b/engines/testbed/misc.h
index 2b232ea6c0..08c0954f05 100644
--- a/engines/testbed/misc.h
+++ b/engines/testbed/misc.h
@@ -25,6 +25,8 @@
 
 #include "testbed/testsuite.h"
 
+#include "common/mutex.h"
+
 
 namespace Testbed {
 
@@ -33,7 +35,7 @@ struct SharedVars {
 	int first;
 	int second;
 	bool resultSoFar;
-	OSystem::MutexRef mutex;
+	Common::Mutex *mutex;
 };
 
 namespace MiscTests {
diff --git a/engines/tony/gfxcore.h b/engines/tony/gfxcore.h
index 7c0de186ca..e9ddabd1ae 100644
--- a/engines/tony/gfxcore.h
+++ b/engines/tony/gfxcore.h
@@ -452,7 +452,7 @@ private:
 	void mergeDirtyRects();
 
 private:
-	//OSystem::MutexRef csModifyingOT;
+	//Common::Mutex csModifyingOT;
 
 protected:
 	OTList *_otlist;
diff --git a/engines/tony/inventory.cpp b/engines/tony/inventory.cpp
index 974be8b04d..e6fe09808b 100644
--- a/engines/tony/inventory.cpp
+++ b/engines/tony/inventory.cpp
@@ -42,7 +42,6 @@ RMInventory::RMInventory() {
 	_items = NULL;
 	_state = CLOSED;
 	_bCombining = false;
-	_csModifyInterface = g_system->createMutex();
 	_nItems = 0;
 
 	Common::fill(_inv, _inv + 256, 0);
@@ -60,7 +59,6 @@ RMInventory::RMInventory() {
 
 RMInventory::~RMInventory() {
 	close();
-	g_system->deleteMutex(_csModifyInterface);
 }
 
 bool RMInventory::checkPointInside(const RMPoint &pt) {
@@ -182,9 +180,9 @@ void RMInventory::draw(CORO_PARAM, RMGfxTargetBuffer &bigBuf, RMGfxPrimitive *pr
 	CORO_BEGIN_CODE(_ctx);
 
 	prim->setDst(RMPoint(0, _curPutY));
-	g_system->lockMutex(_csModifyInterface);
+	_csModifyInterface.lock();
 	CORO_INVOKE_2(RMGfxWoodyBuffer::draw, bigBuf, prim);
-	g_system->unlockMutex(_csModifyInterface);
+	_csModifyInterface.unlock();
 
 	if (_state == SELECTING) {
 
@@ -228,7 +226,7 @@ void RMInventory::removeThis(CORO_PARAM, bool &result) {
 void RMInventory::removeItem(int code) {
 	for (int i = 0; i < _nInv; i++) {
 		if (_inv[i] == code - 10000) {
-			g_system->lockMutex(_csModifyInterface);
+			_csModifyInterface.lock();
 
 			Common::copy(&_inv[i + 1], &_inv[i + 1] + (_nInv - i), &_inv[i]);
 			_nInv--;
@@ -236,7 +234,7 @@ void RMInventory::removeItem(int code) {
 			prepare();
 			drawOT(Common::nullContext);
 			clearOT();
-			g_system->unlockMutex(_csModifyInterface);
+			_csModifyInterface.unlock();
 			return;
 		}
 	}
@@ -247,7 +245,7 @@ void RMInventory::addItem(int code) {
 		// If we are here, it means that we are adding an item that should not be in the inventory
 		warning("RMInventory::addItem(%d) - Cannot find a valid icon for this item, and then it will not be added to the inventory", code);
 	} else {
-		g_system->lockMutex(_csModifyInterface);
+		_csModifyInterface.lock();
 		if (_curPos + 8 == _nInv) {
 			// Break through the inventory! On the flashing pattern
 			_items[28]._icon.setPattern(2);
@@ -258,7 +256,7 @@ void RMInventory::addItem(int code) {
 		prepare();
 		drawOT(Common::nullContext);
 		clearOT();
-		g_system->unlockMutex(_csModifyInterface);
+		_csModifyInterface.unlock();
 	}
 }
 
@@ -266,14 +264,14 @@ void RMInventory::changeItemStatus(uint32 code, uint32 dwStatus) {
 	if (code <= 10000 || code >= 10101) {
 		error("RMInventory::changeItemStatus(%d) - Specified object code is not valid", code);
 	} else {
-		g_system->lockMutex(_csModifyInterface);
+		_csModifyInterface.lock();
 		_items[code - 10000]._icon.setPattern(dwStatus);
 		_items[code - 10000]._status = dwStatus;
 
 		prepare();
 		drawOT(Common::nullContext);
 		clearOT();
-		g_system->unlockMutex(_csModifyInterface);
+		_csModifyInterface.unlock();
 	}
 }
 
@@ -331,7 +329,7 @@ bool RMInventory::leftClick(const RMPoint &mpos, int &nCombineObj) {
 
 	// Click the right arrow
 	if ((_state == OPENED) && _bBlinkingRight) {
-		g_system->lockMutex(_csModifyInterface);
+		_csModifyInterface.lock();
 		_curPos++;
 
 		if (_curPos + 8 >= _nInv) {
@@ -347,13 +345,13 @@ bool RMInventory::leftClick(const RMPoint &mpos, int &nCombineObj) {
 		prepare();
 		drawOT(Common::nullContext);
 		clearOT();
-		g_system->unlockMutex(_csModifyInterface);
+		_csModifyInterface.unlock();
 	}
 
 	// Click the left arrow
 	else if ((_state == OPENED) && _bBlinkingLeft) {
 		assert(_curPos > 0);
-		g_system->lockMutex(_csModifyInterface);
+		_csModifyInterface.lock();
 		_curPos--;
 
 		if (_curPos == 0) {
@@ -369,7 +367,7 @@ bool RMInventory::leftClick(const RMPoint &mpos, int &nCombineObj) {
 		prepare();
 		drawOT(Common::nullContext);
 		clearOT();
-		g_system->unlockMutex(_csModifyInterface);
+		_csModifyInterface.unlock();
 	}
 
 	return false;
@@ -392,7 +390,7 @@ void RMInventory::rightClick(const RMPoint &mpos) {
 	}
 
 	if ((_state == OPENED) && _bBlinkingRight) {
-		g_system->lockMutex(_csModifyInterface);
+		_csModifyInterface.lock();
 		_curPos += 7;
 		if (_curPos + 8 > _nInv)
 			_curPos = _nInv - 8;
@@ -410,10 +408,10 @@ void RMInventory::rightClick(const RMPoint &mpos) {
 		prepare();
 		drawOT(Common::nullContext);
 		clearOT();
-		g_system->unlockMutex(_csModifyInterface);
+		_csModifyInterface.unlock();
 	} else if ((_state == OPENED) && _bBlinkingLeft) {
 		assert(_curPos > 0);
-		g_system->lockMutex(_csModifyInterface);
+		_csModifyInterface.lock();
 		_curPos -= 7;
 		if (_curPos < 0)
 			_curPos = 0;
@@ -431,7 +429,7 @@ void RMInventory::rightClick(const RMPoint &mpos) {
 		prepare();
 		drawOT(Common::nullContext);
 		clearOT();
-		g_system->unlockMutex(_csModifyInterface);
+		_csModifyInterface.unlock();
 	}
 }
 
@@ -459,7 +457,7 @@ bool RMInventory::rightRelease(const RMPoint &mpos, RMTonyAction &curAction) {
 void RMInventory::doFrame(RMGfxTargetBuffer &bigBuf, RMPointer &ptr, RMPoint mpos, bool bCanOpen) {
 	if (_state != CLOSED) {
 		// Clean up the OT list
-		g_system->lockMutex(_csModifyInterface);
+		_csModifyInterface.lock();
 		clearOT();
 
 		// DoFrame makes all the objects currently in the inventory be displayed
@@ -506,7 +504,7 @@ void RMInventory::doFrame(RMGfxTargetBuffer &bigBuf, RMPointer &ptr, RMPoint mpo
 		if (bNeedRedraw)
 			prepare();
 
-		g_system->unlockMutex(_csModifyInterface);
+		_csModifyInterface.unlock();
 	}
 
 	if (g_vm->getEngine()->getInput().getAsyncKeyState(Common::KEYCODE_i)) {
diff --git a/engines/tony/inventory.h b/engines/tony/inventory.h
index 5ba381def6..d8432b8ace 100644
--- a/engines/tony/inventory.h
+++ b/engines/tony/inventory.h
@@ -30,7 +30,7 @@
 #define TONY_INVENTORY_H
 
 #include "common/scummsys.h"
-#include "common/system.h"
+#include "common/mutex.h"
 #include "tony/font.h"
 #include "tony/game.h"
 #include "tony/gfxcore.h"
@@ -76,7 +76,7 @@ protected:
 	RMItem _miniInterface;
 	RMText _hints[3];
 
-	OSystem::MutexRef _csModifyInterface;
+	Common::Mutex _csModifyInterface;
 
 protected:
 	/**
diff --git a/engines/tony/loc.cpp b/engines/tony/loc.cpp
index 9ee6f23a4e..72d18ff3d6 100644
--- a/engines/tony/loc.cpp
+++ b/engines/tony/loc.cpp
@@ -891,10 +891,10 @@ bool RMCharacter::findPath(short source, short destination) {
 	bool error = false;
 	RMBoxLoc *cur;
 
-	g_system->lockMutex(_csMove);
+	_csMove.lock();
 
 	if (source == -1 || destination == -1) {
-		g_system->unlockMutex(_csMove);
+		_csMove.unlock();
 		return 0;
 	}
 
@@ -973,7 +973,7 @@ bool RMCharacter::findPath(short source, short destination) {
 		_pathLength++;
 	}
 
-	g_system->unlockMutex(_csMove);
+	_csMove.unlock();
 
 	return !error;
 }
@@ -1327,7 +1327,7 @@ void RMCharacter::doFrame(CORO_PARAM, RMGfxTargetBuffer *bigBuf, int loc) {
 	_bEndOfPath = false;
 	_bDrawNow = (_curLocation == loc);
 
-	g_system->lockMutex(_csMove);
+	_csMove.lock();
 
 	// If we're walking..
 	if (_status != STAND) {
@@ -1422,7 +1422,7 @@ void RMCharacter::doFrame(CORO_PARAM, RMGfxTargetBuffer *bigBuf, int loc) {
 		}
 	}
 
-	g_system->unlockMutex(_csMove);
+	_csMove.unlock();
 
 	// Invoke the DoFrame of the item
 	RMItem::doFrame(bigBuf);
@@ -1616,7 +1616,6 @@ void RMCharacter::removeThis(CORO_PARAM, bool &result) {
 }
 
 RMCharacter::RMCharacter() {
-	_csMove = g_system->createMutex();
 	_hEndOfPath = CoroScheduler.createEvent(false, false);
 	_minPath = 0;
 	_curSpeed = 3;
@@ -1644,7 +1643,6 @@ RMCharacter::RMCharacter() {
 }
 
 RMCharacter::~RMCharacter() {
-	g_system->deleteMutex(_csMove);
 	CoroScheduler.closeEvent(_hEndOfPath);
 }
 
diff --git a/engines/tony/loc.h b/engines/tony/loc.h
index a52670fc58..359d75fd15 100644
--- a/engines/tony/loc.h
+++ b/engines/tony/loc.h
@@ -30,7 +30,7 @@
 #define TONY_LOC_H
 
 #include "common/scummsys.h"
-#include "common/system.h"
+#include "common/mutex.h"
 #include "common/file.h"
 #include "tony/sound.h"
 #include "tony/utils.h"
@@ -384,7 +384,7 @@ private:
 	int _curSpeed;
 	bool _bEndOfPath;
 	uint32 _hEndOfPath;
-	OSystem::MutexRef _csMove;
+	Common::Mutex _csMove;
 	int _curLocation;
 	bool _bRemoveFromOT;
 	bool _bMovingWithoutMinpath;




More information about the Scummvm-git-logs mailing list