From 69b1485a22dc2b8a2cfe0bd10edcbaad0da0cf6e Mon Sep 17 00:00:00 2001 From: strangerke Date: Thu, 12 May 2011 01:13:57 +0200 Subject: GIT: Clean up: Suppress SVN tags, now useless --- engines/sci/engine/kscripts.cpp | 3 --- 1 file changed, 3 deletions(-) (limited to 'engines/sci/engine/kscripts.cpp') diff --git a/engines/sci/engine/kscripts.cpp b/engines/sci/engine/kscripts.cpp index b9baa3540a..c905f22050 100644 --- a/engines/sci/engine/kscripts.cpp +++ b/engines/sci/engine/kscripts.cpp @@ -18,9 +18,6 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * - * $URL$ - * $Id$ - * */ #include "sci/sci.h" -- cgit v1.2.3 From c01fed7159c313680e55458efb6529d332ebc8b0 Mon Sep 17 00:00:00 2001 From: Willem Jan Palenstijn Date: Fri, 13 May 2011 23:01:02 +0200 Subject: SCI: Avoid incrementing lockers of deleted script Having a deleted script with non-zero lockers had the side effect of making the deleted script re-appear in the GC's work list, including any (deleted) objects in the script. This should be the root cause of bugs #3299458 and #3295849, so also delete the workaround added for that in 35086fe1. --- engines/sci/engine/kscripts.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'engines/sci/engine/kscripts.cpp') diff --git a/engines/sci/engine/kscripts.cpp b/engines/sci/engine/kscripts.cpp index c905f22050..b48de1c7ea 100644 --- a/engines/sci/engine/kscripts.cpp +++ b/engines/sci/engine/kscripts.cpp @@ -259,7 +259,7 @@ reg_t kDisposeScript(EngineState *s, int argc, reg_t *argv) { SegmentId id = s->_segMan->getScriptSegment(script); Script *scr = s->_segMan->getScriptIfLoaded(id); - if (scr) { + if (scr && !scr->isMarkedAsDeleted()) { if (s->_executionStack.back().addr.pc.segment != id) scr->setLockers(1); } -- cgit v1.2.3 From eea482fa4304cab0e23ca4abffdec3651e45f01d Mon Sep 17 00:00:00 2001 From: Matthew Hoops Date: Wed, 25 May 2011 10:31:37 -0400 Subject: ALL: behaviour -> behavior --- engines/sci/engine/kscripts.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'engines/sci/engine/kscripts.cpp') diff --git a/engines/sci/engine/kscripts.cpp b/engines/sci/engine/kscripts.cpp index b48de1c7ea..d83254b2c4 100644 --- a/engines/sci/engine/kscripts.cpp +++ b/engines/sci/engine/kscripts.cpp @@ -46,7 +46,7 @@ reg_t kLoad(EngineState *s, int argc, reg_t *argv) { } // Unloads an arbitrary resource of type 'restype' with resource numbber 'resnr' -// behaviour of this call didn't change between sci0->sci1.1 parameter wise, which means getting called with +// behavior of this call didn't change between sci0->sci1.1 parameter wise, which means getting called with // 1 or 3+ parameters is not right according to sierra sci reg_t kUnLoad(EngineState *s, int argc, reg_t *argv) { if (argc >= 2) { @@ -192,7 +192,7 @@ reg_t kDisposeClone(EngineState *s, int argc, reg_t *argv) { } // SCI uses this technique to find out, if it's a clone and if it's supposed to get freed - // At least kq4early relies on this behaviour. The scripts clone "Sound", then set bit 1 manually + // At least kq4early relies on this behavior. The scripts clone "Sound", then set bit 1 manually // and call kDisposeClone later. In that case we may not free it, otherwise we will run into issues // later, because kIsObject would then return false and Sound object wouldn't get checked. uint16 infoSelector = object->getInfoSelector().offset; -- cgit v1.2.3