diff options
author | Martin Kiewitz | 2010-07-03 18:44:44 +0000 |
---|---|---|
committer | Martin Kiewitz | 2010-07-03 18:44:44 +0000 |
commit | 5872f5bb1fac5a8d4b8ddecf777e22ca23ecca39 (patch) | |
tree | 0562b6a5eb1c0a866396b2907ecb36ef5cc13ccc | |
parent | 88d1155c5e0b265c39466536f572a8aebfef8259 (diff) | |
download | scummvm-rg350-5872f5bb1fac5a8d4b8ddecf777e22ca23ecca39.tar.gz scummvm-rg350-5872f5bb1fac5a8d4b8ddecf777e22ca23ecca39.tar.bz2 scummvm-rg350-5872f5bb1fac5a8d4b8ddecf777e22ca23ecca39.zip |
SCI: adding support to identify uninitialized values, when doing debug output for kernel signatures
svn-id: r50626
-rw-r--r-- | engines/sci/engine/kernel.cpp | 18 | ||||
-rw-r--r-- | engines/sci/engine/kernel.h | 17 |
2 files changed, 20 insertions, 15 deletions
diff --git a/engines/sci/engine/kernel.cpp b/engines/sci/engine/kernel.cpp index 1fd80d2cf7..fb2c60cdb6 100644 --- a/engines/sci/engine/kernel.cpp +++ b/engines/sci/engine/kernel.cpp @@ -685,6 +685,9 @@ int Kernel::findRegType(reg_t reg) { if (!reg.segment) return reg.offset ? KSIG_ARITHMETIC : KSIG_ARITHMETIC | KSIG_NULL; + if (reg.segment == 0xFFFF) + return KSIG_UNINITIALIZED; + // Otherwise it's an object SegmentObj *mobj = _segMan->getSegmentObj(reg.segment); if (!mobj) @@ -728,13 +731,14 @@ struct SignatureDebugType { }; static const SignatureDebugType signatureDebugTypeList[] = { - { KSIG_NULL, "null" }, - { KSIG_ARITHMETIC, "value" }, - { KSIG_OBJECT, "object" }, - { KSIG_REF, "reference" }, - { KSIG_LIST, "list" }, - { KSIG_NODE, "node" }, - { 0, NULL } + { KSIG_NULL, "null" }, + { KSIG_ARITHMETIC, "value" }, + { KSIG_UNINITIALIZED, "uninitialized" }, + { KSIG_OBJECT, "object" }, + { KSIG_REF, "reference" }, + { KSIG_LIST, "list" }, + { KSIG_NODE, "node" }, + { 0, NULL } }; static void kernelSignatureDebugType(const char type) { diff --git a/engines/sci/engine/kernel.h b/engines/sci/engine/kernel.h index cb66aa9f4d..9b4a11f132 100644 --- a/engines/sci/engine/kernel.h +++ b/engines/sci/engine/kernel.h @@ -99,14 +99,15 @@ struct SelectorCache; // from selector.h // Compiled signatures enum { - KSIG_LIST = 0x01, - KSIG_NODE = 0x02, - KSIG_OBJECT = 0x04, - KSIG_REF = 0x08, - KSIG_ARITHMETIC = 0x10, - KSIG_NULL = 0x40, - KSIG_ANY = 0x5f, - KSIG_ELLIPSIS = 0x80 + KSIG_LIST = 0x01, + KSIG_NODE = 0x02, + KSIG_OBJECT = 0x04, + KSIG_REF = 0x08, + KSIG_ARITHMETIC = 0x10, + KSIG_UNINITIALIZED = 0x20, + KSIG_NULL = 0x40, + KSIG_ANY = 0x5f, + KSIG_ELLIPSIS = 0x80 }; // ---------------------------------------------------------------------------- |