SCI: removing invalid reference error from signature checking, instead adding new type "invalid", so that full call parameter debug information is available

svn-id: r50725
This commit is contained in:
Martin Kiewitz 2010-07-06 14:26:29 +00:00
parent a7cd1534c6
commit c349d7130c
3 changed files with 8 additions and 3 deletions

View file

@ -719,10 +719,10 @@ int Kernel::findRegType(reg_t reg) {
// Otherwise it's an object
SegmentObj *mobj = _segMan->getSegmentObj(reg.segment);
if (!mobj)
return 0; // Invalid
return SIG_TYPE_INVALID;
if (!mobj->isValidOffset(reg.offset))
error("[KERN] ref %04x:%04x is invalid", PRINT_REG(reg));
return SIG_TYPE_INVALID;
switch (mobj->getType()) {
case SEG_TYPE_SCRIPT:
@ -762,6 +762,7 @@ static const SignatureDebugType signatureDebugTypeList[] = {
{ SIG_TYPE_NULL, "null" },
{ SIG_TYPE_INTEGER, "integer" },
{ SIG_TYPE_UNINITIALIZED, "uninitialized" },
{ SIG_TYPE_INVALID, "invalid" },
{ SIG_TYPE_OBJECT, "object" },
{ SIG_TYPE_REFERENCE, "reference" },
{ SIG_TYPE_LIST, "list" },