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  };  // ----------------------------------------------------------------------------  | 
