summaryrefslogtreecommitdiff
path: root/src/helper/command.c
diff options
context:
space:
mode:
authorZachary T Welch <zw@superlucidity.net>2009-11-29 15:58:16 -0800
committerZachary T Welch <zw@superlucidity.net>2009-11-30 16:29:34 -0800
commitbc9ae740730efacc2daa3ecbdb0ee75601ec18df (patch)
tree732893349ef7029662ecc98fd42d77e698d3d5b5 /src/helper/command.c
parentc0630d8a58c525e09aa938c7a50d4c99d39a93a3 (diff)
downloadopenocd+libswd-bc9ae740730efacc2daa3ecbdb0ee75601ec18df.tar.gz
openocd+libswd-bc9ae740730efacc2daa3ecbdb0ee75601ec18df.tar.bz2
openocd+libswd-bc9ae740730efacc2daa3ecbdb0ee75601ec18df.tar.xz
openocd+libswd-bc9ae740730efacc2daa3ecbdb0ee75601ec18df.zip
improve command_done() API and docs
command_done() does not need to return an error, but it needed Doxygen comment. Provide some for copy_command_context as well. Note: this audit revealed some potential bugs with the command context implementation. There was a reason that commands were added at the end of the list. Shallow copying of command_context means that the list is shared between them. And commands added at the top-level before the pre-existing commands will not be available in the shared context as they were before. Yikes! Fortunately, this does not seem to occur in general use, as 'add_help_text' gets registered in startup.tcl and claims the first slot in my own test cases. Thus, it seems that we have been masking the issue for now, but it shows the need for further architectural improvement in the core command module.
Diffstat (limited to 'src/helper/command.c')
-rw-r--r--src/helper/command.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/helper/command.c b/src/helper/command.c
index ac7c8d88..6031ce6a 100644
--- a/src/helper/command.c
+++ b/src/helper/command.c
@@ -683,12 +683,12 @@ struct command_context* copy_command_context(struct command_context* context)
return copy_context;
}
-int command_done(struct command_context *context)
+void command_done(struct command_context *cmd_ctx)
{
- free(context);
- context = NULL;
+ if (NULL == cmd_ctx)
+ return;
- return ERROR_OK;
+ free(cmd_ctx);
}
/* find full path to file */