[Scummvm-cvs-logs] CVS: scummvm/scumm object.cpp,1.51,1.52
Max Horn
fingolfin at users.sourceforge.net
Sun Jan 12 13:54:03 CET 2003
- Previous message: [Scummvm-cvs-logs] CVS: scummvm/scumm object.cpp,1.50,1.51
- Next message: [Scummvm-cvs-logs] CVS: scummvm/scumm actor.cpp,1.56,1.57 boxes.cpp,1.8,1.9 saveload.cpp,1.42,1.43 saveload.h,1.8,1.9 script_v8.cpp,2.111,2.112 scumm.h,1.128,1.129 scummvm.cpp,2.35,2.36
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1:/tmp/cvs-serv32378
Modified Files:
object.cpp
Log Message:
don't lock/unlock if resource was already locked
Index: object.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/object.cpp,v
retrieving revision 1.51
retrieving revision 1.52
diff -u -d -r1.51 -r1.52
--- object.cpp 12 Jan 2003 21:46:58 -0000 1.51
+++ object.cpp 12 Jan 2003 21:53:25 -0000 1.52
@@ -1656,6 +1656,7 @@
ObjectData *od;
byte *flob;
uint32 obcd_size, obim_size, flob_size;
+ bool isRoomLocked, isRoomScriptsLocked;
// Don't load an already loaded object
if (whereIsObject(object) != WIO_NOT_FOUND)
@@ -1690,8 +1691,11 @@
// Lock room/roomScripts for the given room. They contains the OBCD/OBIM
// data, and a call to createResource might expire them, hence we lock them.
- lock(rtRoom, room);
- if (_features & GF_AFTER_V8)
+ isRoomLocked = res.flags[rtRoom][room] & RF_LOCK;
+ isRoomScriptsLocked = res.flags[rtRoomScripts][room] & RF_LOCK;
+ if (!isRoomLocked)
+ lock(rtRoom, room);
+ if (_features & GF_AFTER_V8 && !isRoomScriptsLocked)
lock(rtRoomScripts, room);
// Allocate slot & memory for floating object
@@ -1708,8 +1712,9 @@
memcpy(flob + 8 + obcd_size, foir.obim, obim_size);
// Unlock room/roomScripts
- unlock(rtRoom, room);
- if (_features & GF_AFTER_V8)
+ if (!isRoomLocked)
+ unlock(rtRoom, room);
+ if (_features & GF_AFTER_V8 && !isRoomScriptsLocked)
unlock(rtRoomScripts, room);
// Setup local object flags
- Previous message: [Scummvm-cvs-logs] CVS: scummvm/scumm object.cpp,1.50,1.51
- Next message: [Scummvm-cvs-logs] CVS: scummvm/scumm actor.cpp,1.56,1.57 boxes.cpp,1.8,1.9 saveload.cpp,1.42,1.43 saveload.h,1.8,1.9 script_v8.cpp,2.111,2.112 scumm.h,1.128,1.129 scummvm.cpp,2.35,2.36
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Scummvm-git-logs
mailing list