aboutsummaryrefslogtreecommitdiff
path: root/scumm/debugger.cpp
diff options
context:
space:
mode:
authorMax Horn2003-05-21 18:09:49 +0000
committerMax Horn2003-05-21 18:09:49 +0000
commit86d57f3c7af8fd0d4c6a4d1751ccdaac77c3b2e8 (patch)
treeaa7c2126baa9dd2ca7dd80910f5835b6aa861294 /scumm/debugger.cpp
parent11d29b71ab4400e6e732ba7cd49a343150360eaf (diff)
downloadscummvm-rg350-86d57f3c7af8fd0d4c6a4d1751ccdaac77c3b2e8.tar.gz
scummvm-rg350-86d57f3c7af8fd0d4c6a4d1751ccdaac77c3b2e8.tar.bz2
scummvm-rg350-86d57f3c7af8fd0d4c6a4d1751ccdaac77c3b2e8.zip
many pedantic warning fixes (and some actual potential buglets fixed, too)
svn-id: r7795
Diffstat (limited to 'scumm/debugger.cpp')
-rw-r--r--scumm/debugger.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/scumm/debugger.cpp b/scumm/debugger.cpp
index 139ca5bb37..95f8ec0764 100644
--- a/scumm/debugger.cpp
+++ b/scumm/debugger.cpp
@@ -143,7 +143,7 @@ void ScummDebugger::on_frame() {
bool ScummDebugger::debuggerInputCallback(ConsoleDialog *console, const char *input, void *refCon) {
ScummDebugger *debugger = (ScummDebugger *)refCon;
- return debugger->RunCommand((char*)input);
+ return debugger->RunCommand(input);
}
@@ -229,10 +229,11 @@ void ScummDebugger::enter() {
}
// Command execution loop
-bool ScummDebugger::RunCommand(char *input) {
+bool ScummDebugger::RunCommand(const char *inputOrig) {
int i = 0, num_params = 0;
const char *param[256];
-
+ char *input = strdup(inputOrig); // One of the rare occasions using strdup is OK (although avoiding strtok might be more elegant here).
+
// Parse out any params
char *tok = strtok(input, " ");
if (tok) {
@@ -245,6 +246,7 @@ bool ScummDebugger::RunCommand(char *input) {
for(i=0; i < _dcmd_count; i++) {
if (!strcmp(_dcmds[i].name, param[0])) {
+ free(input);
return (this->*_dcmds[i].function)(num_params, param);
}
}
@@ -321,11 +323,13 @@ bool ScummDebugger::RunCommand(char *input) {
}
}
+ free(input);
return true;
}
}
Debug_Printf("Unknown command or variable\n");
+ free(input);
return true;
}