Fix Jim interpreter memory leak
Change-Id: I71d7d97e7dc315c42fc43b65cb5fcecd7bdfb581 Signed-off-by: Marc Schink <openocd-dev@marcschink.de> Reviewed-on: http://openocd.zylin.com/2959 Tested-by: jenkins Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
This commit is contained in:
parent
2bd78e1239
commit
edb6796286
|
@ -1339,6 +1339,15 @@ struct command_context *command_init(const char *startup_tcl, Jim_Interp *interp
|
|||
return context;
|
||||
}
|
||||
|
||||
void command_exit(struct command_context *context)
|
||||
{
|
||||
if (!context)
|
||||
return;
|
||||
|
||||
Jim_FreeInterp(context->interp);
|
||||
command_done(context);
|
||||
}
|
||||
|
||||
int command_context_mode(struct command_context *cmd_ctx, enum command_mode mode)
|
||||
{
|
||||
if (!cmd_ctx)
|
||||
|
|
|
@ -307,6 +307,14 @@ struct command_context *current_command_context(Jim_Interp *interp);
|
|||
* creates a command interpreter.
|
||||
*/
|
||||
struct command_context *command_init(const char *startup_tcl, Jim_Interp *interp);
|
||||
/**
|
||||
* Shutdown a command context.
|
||||
*
|
||||
* Free the command context and the associated Jim interpreter.
|
||||
*
|
||||
* @param context The command_context that will be destroyed.
|
||||
*/
|
||||
void command_exit(struct command_context *context);
|
||||
/**
|
||||
* Creates a copy of an existing command context. This does not create
|
||||
* a deep copy of the command list, so modifications in one context will
|
||||
|
|
|
@ -344,8 +344,8 @@ int openocd_main(int argc, char *argv[])
|
|||
|
||||
unregister_all_commands(cmd_ctx, NULL);
|
||||
|
||||
/* free commandline interface */
|
||||
command_done(cmd_ctx);
|
||||
/* Shutdown commandline interface */
|
||||
command_exit(cmd_ctx);
|
||||
|
||||
adapter_quit();
|
||||
|
||||
|
|
Loading…
Reference in New Issue