aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFilippos Karapetis2014-08-07 23:27:47 +0300
committerFilippos Karapetis2014-08-08 02:11:49 +0300
commit1cbfe02bcfbb947aaa8b016087095734c603d9f5 (patch)
tree51394a313d4943774769e09847ec27e19df80419
parent278a14d96ef40acabaf038f70662be671d9093fc (diff)
downloadscummvm-rg350-1cbfe02bcfbb947aaa8b016087095734c603d9f5.tar.gz
scummvm-rg350-1cbfe02bcfbb947aaa8b016087095734c603d9f5.tar.bz2
scummvm-rg350-1cbfe02bcfbb947aaa8b016087095734c603d9f5.zip
SCI: Allow invalid references to kUnload() - bug #6600
Since the reference will be invalidated anyway by kUnload itself, there's no real reason to check for its validity. We do the same with kGraph() and kDisplay().
-rw-r--r--engines/sci/engine/kernel_tables.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/engines/sci/engine/kernel_tables.h b/engines/sci/engine/kernel_tables.h
index fc46d16b8d..0c2fd4e3ea 100644
--- a/engines/sci/engine/kernel_tables.h
+++ b/engines/sci/engine/kernel_tables.h
@@ -468,7 +468,8 @@ static SciKernelMapEntry s_kernelMap[] = {
{ MAP_CALL(TimesSin), SIG_EVERYWHERE, "ii", NULL, NULL },
{ "SinMult", kTimesSin, SIG_EVERYWHERE, "ii", NULL, NULL },
{ MAP_CALL(TimesTan), SIG_EVERYWHERE, "ii", NULL, NULL },
- { MAP_CALL(UnLoad), SIG_EVERYWHERE, "i[ri]", NULL, kUnLoad_workarounds },
+ { MAP_CALL(UnLoad), SIG_EVERYWHERE, "i[ir!]", NULL, kUnLoad_workarounds },
+ // ^ We allow invalid references here (e.g. bug #6600), since they will be invalidated anyway by the call itself
{ MAP_CALL(ValidPath), SIG_EVERYWHERE, "r", NULL, NULL },
{ MAP_CALL(Wait), SIG_EVERYWHERE, "i", NULL, NULL },