[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