Debugger: Don't automatically free CLI backend

This commit is contained in:
Jeffrey Pfau 2016-10-26 21:43:24 -07:00
parent e430e55149
commit 02c3ea80fd
2 changed files with 5 additions and 10 deletions

View File

@ -678,11 +678,8 @@ static void _cliDebuggerDeinit(struct mDebugger* debugger) {
free(cliDebugger->system);
cliDebugger->system = NULL;
}
if (cliDebugger->backend) {
if (cliDebugger->backend->deinit) {
if (cliDebugger->backend && cliDebugger->backend->deinit) {
cliDebugger->backend->deinit(cliDebugger->backend);
}
free(cliDebugger->backend);
cliDebugger->backend = NULL;
}
}
@ -722,12 +719,9 @@ void CLIDebuggerAttachSystem(struct CLIDebugger* debugger, struct CLIDebuggerSys
}
void CLIDebuggerAttachBackend(struct CLIDebugger* debugger, struct CLIDebuggerBackend* backend) {
if (debugger->backend) {
if (debugger->backend->deinit) {
if (debugger->backend && debugger->backend->deinit) {
debugger->backend->deinit(debugger->backend);
}
free(debugger->backend);
}
debugger->backend = backend;
backend->p = debugger;

View File

@ -68,6 +68,7 @@ void _CLIDebuggerEditLineDeinit(struct CLIDebuggerBackend* be) {
struct CLIDebuggerEditLineBackend* elbe = (struct CLIDebuggerEditLineBackend*) be;
history_end(elbe->histate);
el_end(elbe->elstate);
free(elbe);
}
const char* _CLIDebuggerEditLineReadLine(struct CLIDebuggerBackend* be, size_t* len) {