[Scummvm-cvs-logs] CVS: scummvm/common debugger.h,1.5,1.5.2.1 debugger.cpp,1.5,1.5.2.1
Max Horn
fingolfin at users.sourceforge.net
Fri Aug 13 02:00:01 CEST 2004
Update of /cvsroot/scummvm/scummvm/common
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15019/common
Modified Files:
Tag: branch-0-6-0
debugger.h debugger.cpp
Log Message:
Backported debugger fixes
Index: debugger.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/common/debugger.h,v
retrieving revision 1.5
retrieving revision 1.5.2.1
diff -u -d -r1.5 -r1.5.2.1
--- debugger.h 6 Jan 2004 12:45:27 -0000 1.5
+++ debugger.h 13 Aug 2004 08:58:53 -0000 1.5.2.1
@@ -47,6 +47,7 @@
typedef bool (T::*DebugProc)(int argc, const char **argv);
enum {
+ DVAR_BYTE,
DVAR_INT,
DVAR_BOOL,
DVAR_INTARRAY,
Index: debugger.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/common/debugger.cpp,v
retrieving revision 1.5
retrieving revision 1.5.2.1
diff -u -d -r1.5 -r1.5.2.1
--- debugger.cpp 17 Jan 2004 23:40:36 -0000 1.5
+++ debugger.cpp 13 Aug 2004 08:58:53 -0000 1.5.2.1
@@ -190,10 +190,14 @@
// Alright, we need to check the TYPE of the variable to deref and stuff... the array stuff is a bit ugly :)
switch(_dvars[i].type) {
// Integer
+ case DVAR_BYTE:
+ *(byte *)_dvars[i].variable = atoi(param[1]);
+ DebugPrintf("byte%s = %d\n", param[0], *(byte *)_dvars[i].variable);
+ break;
case DVAR_INT:
*(int *)_dvars[i].variable = atoi(param[1]);
DebugPrintf("(int)%s = %d\n", param[0], *(int *)_dvars[i].variable);
- break;
+ break;
// Integer Array
case DVAR_INTARRAY: {
char *chr = strchr(param[0], '[');
@@ -202,7 +206,7 @@
} else {
int element = atoi(chr+1);
int32 *var = *(int32 **)_dvars[i].variable;
- if (element > _dvars[i].optional) {
+ if (element >= _dvars[i].optional) {
DebugPrintf("%s is out of range (array is %d elements big)\n", param[0], _dvars[i].optional);
} else {
var[element] = atoi(param[1]);
@@ -210,7 +214,7 @@
}
}
}
- break;
+ break;
default:
DebugPrintf("Failed to set variable %s to %s - unknown type\n", _dvars[i].name, param[1]);
break;
@@ -219,9 +223,12 @@
// And again, type-dependent prints/defrefs. The array one is still ugly.
switch(_dvars[i].type) {
// Integer
+ case DVAR_BYTE:
+ DebugPrintf("(byte)%s = %d\n", param[0], *(byte *)_dvars[i].variable);
+ break;
case DVAR_INT:
DebugPrintf("(int)%s = %d\n", param[0], *(int *)_dvars[i].variable);
- break;
+ break;
// Integer array
case DVAR_INTARRAY: {
char *chr = strchr(param[0], '[');
@@ -229,8 +236,8 @@
DebugPrintf("You must access this array as %s[element]\n", param[0]);
} else {
int element = atoi(chr+1);
- int16 *var = *(int16 **)_dvars[i].variable;
- if (element > _dvars[i].optional) {
+ int32 *var = *(int32 **)_dvars[i].variable;
+ if (element >= _dvars[i].optional) {
DebugPrintf("%s is out of range (array is %d elements big)\n", param[0], _dvars[i].optional);
} else {
DebugPrintf("(int)%s = %d\n", param[0], var[element]);
More information about the Scummvm-git-logs
mailing list