diff options
author | Vinicius Costa Gomes <vinicius.gomes@openbossa.org> | 2008-09-01 17:26:10 -0300 |
---|---|---|
committer | Vinicius Costa Gomes <vinicius.gomes@openbossa.org> | 2008-09-01 19:42:37 -0300 |
commit | e3c0f1dabde976043b02858bd135b2081a9cbe90 (patch) | |
tree | cf401ac14b26cc63d40aeb1f9277c1142b231a25 | |
parent | 0c05dd3dc5a18d64734a9f091d5285612e41107b (diff) |
Removes the agent when the adapter is freed, if it wasn't already done
-rw-r--r-- | src/adapter.c | 3 | ||||
-rw-r--r-- | src/agent.c | 3 |
2 files changed, 6 insertions, 0 deletions
diff --git a/src/adapter.c b/src/adapter.c index a22112c8..98dc8ce2 100644 --- a/src/adapter.c +++ b/src/adapter.c @@ -2747,6 +2747,9 @@ static void adapter_free(gpointer user_data) { struct adapter *adapter = user_data; + agent_destroy(adapter->agent, FALSE); + adapter->agent = NULL; + g_free(adapter->path); g_free(adapter); diff --git a/src/agent.c b/src/agent.c index 9870cb10..c35b2500 100644 --- a/src/agent.c +++ b/src/agent.c @@ -217,6 +217,9 @@ struct agent *agent_create(struct adapter *adapter, const char *name, int agent_destroy(struct agent *agent, gboolean exited) { + if (!agent) + return 0; + agent->exited = exited; agent_free(agent); return 0; |